代码之家  ›  专栏  ›  技术社区  ›  PatS

cygwin和Linux-未设置$user时获取当前用户

  •  0
  • PatS  · 技术社区  · 7 年前

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

    但我有一个cygwin主机,我正在使用的$USER没有设置。

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

    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上获取当前用户的登录名有最佳实践吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   confetti    7 年前

    这个简单的方法怎么样:

    USER=$(whoami | cut -d '\' -f 2)
    

    最棒的是它甚至可以在 whoami user123 而不是 MyHost\user123 ).

        2
  •  2
  •   varro    7 年前

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

    推荐文章