我是unix的新手,并试图理解下面的awk命令:
AWK=/bin/awk
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'`
echo $RUID
该命令正在打印登录的用户名,但是如何使用此命令提取用户名。
答案 0 :(得分:7)
也许你可以试试这个:
whoami
如果你真的想用awk
:
$ id |awk -F'[)(]' '{print $2}'
kent
编辑(评论)
当然还有其他方法可以获取当前登录用户名/ id:
获取用户名
kent$ id -un
kent
kent$ echo $USER
kent
kent$ echo $USERNAME
kent
仅获取UID
kent$ echo $UID
1000
kent$ id -u
1000
答案 1 :(得分:6)
该命令使用-F
参数将id
命令的输出拆分为给定字符,第一个为(
,第二个为)
。不确定你是否熟悉管道?
使用print $2
然后打印第二部分,即第一次出现(
之后的部分,直到下一次出现。您可以通过手动调用命令来查看其工作原理:
/usr/bin/id| $AWK -F\( '{print $2}'
返回username) gid=1000
。
然后再次调用awk
分割awk
上第一次)
运行产生的字符串,然后在第一个)
之前打印该部分。
但是,通过调用/usr/bin/id -un
甚至更简单的whoami
可以实现同样的效果。
同时尝试运行没有参数的/usr/bin/id
命令,以查看awk
正在解析的原始输出。