如果我有一個腳本,比如下面的腳本,我定義了一個在CMD_VAR中運行的命令,一個變量,如何讓它在相同的bash腳本中執行?如何在bash中的變量中執行命令?
我這樣做是因爲我想將CMD_VAR記錄到文件中。
謝謝!
#!/bin/sh
CMD_VAR="echo hello world >> somelogfile"
如果我有一個腳本,比如下面的腳本,我定義了一個在CMD_VAR中運行的命令,一個變量,如何讓它在相同的bash腳本中執行?如何在bash中的變量中執行命令?
我這樣做是因爲我想將CMD_VAR記錄到文件中。
謝謝!
#!/bin/sh
CMD_VAR="echo hello world >> somelogfile"
一般來說,你不應該在一個變量中存儲重定向。你應該將命令存儲在一個數組中。
cmd=(echo "hello world")
log="somelogfile"
"${cmd[@]}" >> "$log"
什麼是[@]是否在這裏? – chuacw
http://tldp.org/LDP/abs/html/arrays.html –
參見[BashFAQ#50:我想在一個變量把一個命令,但是複雜的情況下總是失敗(http://mywiki.wooledge.org/BashFAQ/050) –
可能重複[在Linux中如何在變量中存儲命令?](http://stackoverflow.com/questions/5615717/how-to-store-a-command-in-a-variable-in-linux) –