sudo로 실행되는 bash 스크립트를 작성하는 경우 사용자 셸에 머무르도록 하려면 어떻게 해야 합니까?

sudo로 실행되는 bash 스크립트를 작성하는 경우 사용자 셸에 머무르도록 하려면 어떻게 해야 합니까?

저는 저장소 설치를 처리하기 위해 bash 스크립트를 작성 중입니다. 주로 몇 가지 기본 종속성을 확인하고 git clone을 자주 호출합니다.

이 스크립트를 실행할 때 파일이 설치되어 있는지 확인하고 싶습니다.

git clone https://github.com/reticulatedpines/magiclantern_simplified.git 
echo "Exit status: ($?)" 
if [ $? -eq 0 ]; then
    echo "Magic Lantern has been cloned into ${ML_PATH}."
else
    exit 1
fi

문제는 저장소가 현재 작업 디렉토리에 복제된다는 것입니다. 이는 제가 원하는 것이 아닙니다. cd ~홈 디렉토리로 돌아가려고 하면 실제로 루트 쉘로 보내질 것입니다.

root@debian:~# (repository installs here).

이것을 어떻게 피할 수 있습니까?

답변1

sudo -E <cmd>

-E "명령 실행 시 사용자 환경 유지"를 사용하여 sudo를 실행합니다.

사용자 환경을 보존하면 현재 위치에서 명령이 실행됩니다.

관련 정보