이상한 질문입니다. 스크립트는 다음과 같습니다.
echo $USER
내가 그것을 실행하는 데 사용하는 명령은 다음과 같습니다.
sudo ./myscript.sh
지금은 “루트”를 인쇄하지만 jon
내 사용자 이름 인 인쇄를 원합니다 . 명령이 아닌 스크립트를 변경하여 그렇게 할 수 있습니까?
답변
SUDO_USER
대신 환경 변수를 사용하십시오 USER
.
sudo
SUDO_USER
환경 변수 에서 실행 한 사용자의 이름을 배치합니다 .
ek@Io:~$ sudo sh -c 'echo $USER'
[sudo] password for ek:
root
ek@Io:~$ sudo sh -c 'echo $SUDO_USER'
ek
그래서 당신은 간단하게 교체 할 수 있습니다 $USER
와 $SUDO_USER
스크립트의 :
echo $SUDO_USER
추가 자료
-
man sudo
, “환경”섹션에서 :SUDO_USER Set to the login name of the user who invoked sudo.
맨 페이지에는 and
sudo
등의 편리한 환경 변수에 대해 설명 되어 있습니다.SUDO_UID
SUDO_GID