Я думал, что $ USER был стандартом в системах UNIX, и что Cygwin эмулировал его, поэтому я использовал его в скрипте bash, который работает на cygwin и unix / linux.
Но у меня есть один хост Cygwin, который я использую, где $ USER не установлен.
ПРИМЕЧАНИЕ: 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?