1

我有一个变量,当我回显时,它看起来像这样:

#echo $var
awk '{print  $7 " " $6 " " $8 " "}'

但如果我尝试类似

#ls -lah | exec $var
awk: '{print
awk: ^ invalid char ''' in expression

我究竟做错了什么?

4

2 回答 2

2

而不是exec你需要调用eval

ls -lah | eval $var

但是这里有两个警告:

  1. ls应避免解析输出
  2. eval应尽量减少使用
于 2013-05-14T00:15:49.957 回答
0

只需将 awk 脚本放在变量中

var='{print  $7 " " $6 " " $8 " "}'
ls -lah | awk "$var"
于 2013-05-14T01:02:53.560 回答