2013-05-14 63 views
1

我有一个变量,当我赞同它看起来像这样:Linux的AWK字符串变量的exec

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

但如果我尝试像

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

我在做什么错?

回答

2

相反的exec你需要调用eval

ls -lah | eval $var 

但是2注意这里:

  1. 解析ls输出应避免
  2. 使用eval应尽量减少
0

只需将awk脚本放入变量中

var='{print $7 " " $6 " " $8 " "}' 
ls -lah | awk "$var"