`USER`和`USERNAME`环境变量有什么区别?

时间:2010-12-13 19:10:36

标签: shell environment-variables

我不完全确定使用哪一个。

2 个答案:

答案 0 :(得分:11)

在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

编辑: 最安全的方法是编写一个小函数来确定你所使用的系统(我从上面的评论中收集你想要一次性写入,随处运行的应用程序)并根据它设置适当的值。

答案 1 :(得分:1)

如果是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"] 
相关问题