В чем разница между переменными среды USER и USERNAME? - PullRequest
9 голосов
/ 13 декабря 2010

Я не совсем уверен, какой из них использовать.

Ответы [ 2 ]

11 голосов
/ 13 декабря 2010

В windows: ENV ['username'] выведет текущее имя пользователя.

В linux: если скрипт запускается через sudo, "USER" будет пользователем sudo-ed-to (обычно root) и "USERNAME" будет пользователем, который запустил sudo.

Я предполагаю, что Mac следует модели Linux, но вам придется проверить (я на работе и у меня нет Mac, чтобы ткнуть) :-)

Вот список переменных среды XP: http://vlaurie.com/computers2/Articles/environment.htm

А вот список переменных среды Vista / 7 ... вы заметите, что они немного отличаются: http://vlaurie.com/computers2/Articles/environment-variables-windows-vista-7.htm

Edit: самый безопасный подход - написать небольшую функцию, которая определяет, в какой системе вы находитесь (я понял из вашего комментария выше, что вы хотите приложение Write-Once, Run-Anywhere) и устанавливает соответствующие значения на основечто.

1 голос
/ 13 декабря 2010

, если это Ruby 1.8.6 или 1.9.2, есть только ENV['USER'] (на Mac):

ruby-1.9.2-p0 > ENV.keys.grep /user/i
 => ["USER", "__CF_USER_TEXT_ENCODING"] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...