天天看點

ls: cannot access |: No such file or directory

如果在shell中定義一個指令,帶了管道,例如

CMD="ls -al | grep xx"

直接執行$CMD,會出現如下報錯

ls: cannot access |: No such file or directory

ls: cannot access grep: No such file or directory

管道符會被解釋為普通字元

解決的辦法是通過eval

CMD="eval ls -al | grep xx"

另外如果CMD被用在if 或 while的語句中,需要用$($CMD)或`$CMD`來獲得結果,直接$CMD是不行的

繼續閱讀