2013-05-14 103 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"