1. 程式人生 > >shell中執行一個字串命令的方法

shell中執行一個字串命令的方法

先來寫正確的方法

cmd="echo hello word"

$cmd

或者eval $cmd。實際我測試的時候略有差別。比如執行‘ls -l’命令的時候,沒有eval得到的就沒有顏色。有了eval就有顏色。跟自己敲入命令的執行結果是一樣的。這個我不知道為什麼。盼高手來解答。

over

網上有很多人用 `eval $cmd` 或者 $($cmd) 。我試了一下都不行。鄙視那些沒經過測試就亂回答問題的人。其實不用``或者$()就對了。

千萬要注意的是:你的命令一定要用單引號括起來,避免你的命令中含有$var這樣的變數被擴充套件後賦值給cmd(其實還有很多擴充套件)。這樣你執行的命令就可能產生問題。而且還是很隱蔽的問題。原理很簡單,shell僅僅要得到一個原封不動的字串。而後將該字串送入shell就可以了。