Answers:
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.
该手册页还描述了一些其他sudo
可能有用的相关环境变量,例如SUDO_UID
和SUDO_GID