我认为$USER是UNIX系统的标准,并且cygwin模仿了这一点,所以我一直在适用于cygwin和unix/linux的bash脚本中使用它。
但是我有一个 cygwin 主机,我正在使用未设置$USER主机。
注意:whoami 打印 MyHost\user123 而不仅仅是 user123,并且设置了$USERNAME(它是一个 windows 变量(,所以我将脚本更改为使用 $USER 如果它已设置,然后$USERNAME。
作为一种解决方法,我将在我的 Windows 登录中将其设置为用户定义的环境变量。
赢7天鹅系统($USER未设置(
uname -a
CYGWIN_NT-6.1-WOW host2 2.6.0(0.304/5/3) 2016-08-31 14:27 i686 Cygwin
赢10天鹅系统(有$USER套(
uname -a
CYGWIN_NT-10.0-WOW host3 2.6.0(0.304/5/3) 2016-08-31 14:27 i686 Cygwin
在cygwin和linux上获取当前用户的登录名是否有最佳实践?
这个的标准POSIX变量实际上是LOGNAME,所以你真的应该使用它。
这个简单的方法怎么样:
USER=$(whoami | cut -d '' -f 2)
这样做的好处是,它甚至可以在whoami
只报告用户名的系统上工作(例如user123
而不是MyHostuser123
(。