嘿嘿,awk果然有自己的一手。只是这个在man中写得也太含糊了。(当然也可能我英文太臭:p)
awk脚本是怎样与调用它的shell脚本进行变量通讯能?就是这个“-v var=value :assigns value to program variable var.” 其中var将被传递到awk脚本中,而value是shll中的变量值(注意,可一次传递多个变量),所以上面问题的解决方案就是:
for i in $syslist; do
i="A: "$i
awk -f check.awk -v i="$i" mydb
done
复制代码
check.awk文件内容为:
BEGIN{
FS="\n" #设置换行符为字段分隔符
RS="" #设置空行为记录分隔符
}
{ if ( $1 == i ) print $2 } #在此i其实上是从shell脚本中的select变量传进来的