我是 unix 新手,并试图理解以下 awk 命令:
AWK=/bin/awk
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'`
echo $RUID
该命令正在打印登录的用户名,但如何使用此命令提取用户名。
也许你可以试试这个:
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
该命令使用-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
此处解析的原始输出。