如果您需要在脚本中无论是否通过 sudo
来执行,都获得原始执行用户的名称,可以使用 SUDO_USER
环境变量。当通过 sudo
执行命令时,SUDO_USER
环境变量会被设置为调用 sudo
的原始用户的用户名。如果该脚本没有通过 sudo
来执行,则可以直接使用环境变量 USER
或 whoami
命令。你可以结合它们来获取你所需的信息。
以下是一个示例脚本:
#!/bin/bash
ORIGINAL_USER="${SUDO_USER:-$(whoami)}"
echo "The original user is: $ORIGINAL_USER"
这里,${SUDO_USER:-$(whoami)}
这个构造意味着如果 SUDO_USER
变量被设置了(即脚本是通过 sudo
运行的),它就会被用来赋值给 ORIGINAL_USER
。如果 SUDO_USER
没有设置(即脚本不是通过 sudo
运行的),那么将执行 whoami
命令以获得当前用户的用户名。
这种方法确保了无论脚本是否使用 sudo
来执行,您都能获取到调用脚本的原始用户的用户名。