如何通过OS X中的命令行获取活动用户的名称?
Answers:
由于“ whoami”已过时,因此使用起来可能更向前兼容:
id -un
whoami
Leopard上的手册页确认已被替换id
。
我很确定OS X中的终端就像Unix,所以命令是:
whoami
我目前没有Mac,因此如果我错了,请有人纠正我。
注意-该whoami
实用程序已过时,等效于id -un
。它会给你当前的用户
您也可以使用logname
Linux或MacOS下的BSD通用命令手册中的命令来查看当前登录用户的用户名,即使该用户正在执行sudo
操作。例如,这在使用sudo安装系统范围的软件包时修改用户的crontab时非常有用:crontab -u $(logname)
每man logname
:
LOGNAME(1)
NAME
logname -- display user's login name
恕我直言,这个问题尚未完全回答。我将尝试解释:我有一个crontab条目,该条目安排了bash shell命令过程,从而对我的文件进行了一些清理。然后在完成后,使用OS X通知中心(通过命令)向我发送通知osascript -e 'display notification ...
。如果某人(例如我的妻子或女儿)将计算机的当前用户切换到她,而让我留在后台,则发送通知时cron脚本将失败。
那么,当前用户是谁,意味着还有其他人成为有效的用户,却把我留在了后台吗?是否stat -f "%Su" /dev/console
返回当前的活动用户名?
答案是肯定的。因此,现在我的crontab shell脚本已通过以下方式进行了修改:
...
if [ "$(/usr/bin/stat -f ""%Su"" /dev/console)" = "loreti" ]
then /usr/bin/osascript -e \
'display notification "Cleanup done" sound name "sosumi" with title "myCleanup"'
fi