Chinaunix

标题: awk引用变量的问题,谢谢 [打印本页]

作者: sea_soft    时间: 2008-10-28 10:06
标题: awk引用变量的问题,谢谢
/data/aiocs/shell-> who
root       console       7月  3日 14:33
prm        pts/30       10月 28日 08:24 (192.168.168.190)
cbossrsp   pts/14       10月 28日 08:49 (192.168.168.203)
cbossrsp   pts/33       10月 28日 08:49 (192.168.168.203)
cbossrsp   pts/4        10月 28日 08:36 (192.168.168.203)
aiocs      pts/28       10月 28日 08:45 (192.168.168.20
bes        pts/16       10月 28日 08:39 (192.168.168.197)
obcrm      pts/1        10月 28日 08:45 (192.168.168.153)
chnl       pts/34       10月 28日 08:58 (192.168.168.107)
chnl       pts/32       10月 28日 09:06 (192.168.168.107)
cbossrsp   pts/23       10月 28日 09:14 (192.168.168.196)
aiocs      pts/24       10月 28日 09:15 (192.168.168.194)
aiocs      pts/36       10月 28日 08:32 (192.168.168.192)
/data/aiocs/shell-> who|awk '{if($1==user) print $1" is connected to "$2}' user=$LOGNAME
aiocs is connected to pts/28
aiocs is connected to pts/24
aiocs is connected to pts/36
/data/aiocs/shell-> who|awk '{if($1==$LOGNAME) print $1" is connected to "$2}'
最后这句who|awk '{if($1==$LOGNAME) print $1" is connected to "$2}'显示不出结果,请问,这个是为什么?谢谢
作者: blackold    时间: 2008-10-28 10:09
标题: 回复 #1 sea_soft 的帖子
把shell变量和awk变量混淆了。
作者: ubuntuer    时间: 2008-10-28 10:15
awk内面自定义的变量都是不带$的,直接用就可以了.awk引用shell变量的时候awk -v user=$LOGNAME
作者: sea_soft    时间: 2008-10-28 11:27
谢谢两位,用下面的也可以:
who|awk '{if($1=="'$LOGNAME'") print $1" is connected to "$2}'
作者: kvkingdom    时间: 2008-10-29 12:44
要使用环境变量可用awk -v user=$LOGNAME然后在后面直接调用变量,或在语句中用ENVIRON["LOGNAME"]获取




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2