2013-04-13 29 views
1

如何執行包含重定向字符的bash行(命令)? 例如,以下行不能執行。執行包含重定向字符的bash行(命令)

home>CMD="ls -l > out" 
home>$CMD 
ls: cannot access >: No such file or directory 
ls: cannot access out: No such file or directory 

感謝您的幫助提前。

回答

4

eval $CMD會做你想做的。

+2

'eval'是一個錯誤磁鐵,並且應儘可能避免。如果你必須使用它,至少要雙引號(即'eval「$ CMD」')來避免[真正的離奇行爲](http://stackoverflow.com/questions/9308606/usr-bin-find-無法建立它的參數動態/ 9322047#9322047),可以來自命令運行通過額外的解析水平。 –