请问前辈一下三句有什么不同
2.
sx=3199
awk -F: 'BEGIN{print $sx} {if($3==$sx) print $1} END{print "End"}' passwd
3. awk -F: 'BEGIN{sx=3199; print sx} {if($3==sx) print $1} END{print "End"}' passwd
1 输出
3199
nscc3199
End
2 输出
(空一行)
(空一行)
End
3 输出
3199
(空一行)
End
为什么呀?大神,各位大神指导一下,解释一下原因。因为我以为这3句是同样的结果才对!!!
//引用变量的时候要加$,所以1是对的,3是错的
awk -F: 'BEGIN{sx=3199; print sx} {if($3==sx) print $1} END{print "End"}' passwd
//第2个,引用外部的变量,需要用-v引进来到awk中,
这里有一个awk的简明教程,可以看看
http://blog.csdn.net/havedream_one/article/details/45007431
你外面的变量,要传递