如果我使用 eval 内置
,以下 awk 代码可以正常工作var='$1,$2'
ps | eval "awk '{print $var}'"
但是当我试图敲掉 eval 并使用awk变量作为替代时,我没有得到预期的结果
ps | awk -v v1=$var '{print v1}' # output is $1,$2
ps | awk -v v1=`echo $var` '{print v1}' # output is same as above
ps | awk -v v1=$var '{print $v1}' # output is all the fields of ps command
ps | eval "awk -v v1=$var '{print v1}'" # output is column of comma
如何在不使用 eval 的情况下获得所需的输出?
答案 0 :(得分:2)
在awk
命令中使用双引号:
ps | awk "{print $var}"