首页 > 解决方案 > cygwin 和 Linux - 未设置 $USER 时获取当前用户

问题描述

我认为 $USER 是 UNIX 系统中的标准并且 cygwin 模拟了这一点,所以我一直在 bash 脚本中使用它,该脚本适用于 cygwin 和 unix/linux。

但是我有一台未设置 $USER 的 cygwin 主机。

注意:whoami 打印 MyHost\user123 不仅仅是 user123,并且设置了 $USERNAME(它是一个 windows 变量),所以我将脚本更改为使用 $USER(如果已设置)然后使用 $USERNAME。

作为一种解决方法,我将在我的 Windows 登录中将其设置为用户定义的环境变量。

Win 7 cygwin 系统($USER 未设置)

uname -a
CYGWIN_NT-6.1-WOW host2 2.6.0(0.304/5/3) 2016-08-31 14:27 i686 Cygwin

Win 10 cygwin 系统(已设置 $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 上获取当前用户的登录名是否有最佳实践?

标签: linuxbashcygwin

解决方案


标准的 POSIX 变量实际上是 LOGNAME,所以你真的应该使用它。


推荐阅读