我有一个脚本需要知道它是从哪个用户名运行的。
当我从 shell 运行它时,我可以轻松地使用 bash 提供的 $ENV{“USER”}。
但显然 - 然后从 cron 运行相同的脚本,也通过 bash - $ENV{“USER”} 未定义。
当然,我可以:
my $username = getpwuid( $< );
但它看起来不太好 - 有没有更好/更好的方法?它不必独立于系统,因为该脚本是供我个人使用的,并且只能在 Linux 上运行。
原文由 user80168 发布,翻译遵循 CC BY-SA 4.0 许可协议
crontab 设置
$LOGNAME
所以你可以使用$ENV{"LOGNAME"}
。$LOGNAME
默认情况下也在我的环境中设置(虽然没有查看设置的位置)所以您可能只能使用$LOGNAME
而不是$USER
.虽然我同意黑客的观点,但不知道
getpwuid
有什么问题。