我有一個地方命令存儲在一個變量執行命令
首先我得到命令(假設「的ls -l」命令)
cmd=`cat /proc/2345/cmdline`
現在做的腳本文件
echo $cmd
輸出
ls -l
現在如何使用$ cmd來實際執行該命令。這是ls -l
我有一個地方命令存儲在一個變量執行命令
首先我得到命令(假設「的ls -l」命令)
cmd=`cat /proc/2345/cmdline`
現在做的腳本文件
echo $cmd
輸出
ls -l
現在如何使用$ cmd來實際執行該命令。這是ls -l
簡單的答案是:
$cmd
如果你沒有業務,將其存儲在一個變量,然後沒有。照常運行。
cat /proc/2345/cmdline
eval $cmd
只是$cmd
在許多情況下工作,但並非總是如此。有關更多詳細信息,請參閱文章「Bash: Why use eval with variable expansion?」。
你的參考文獻沒有提到[evval of eval](http://mywiki.wooledge.org/BashFAQ/048)。 – 2010-04-09 18:54:09
@丹尼斯:謝謝,很好的鏈接。問題是:它適用於這種情況嗎? – Heinzi 2010-04-10 13:12:37
是的,因爲'/ proc/2345/cmdline'文件可能包含類似'rm -rf /'的可怕內容(但在這種情況下,這種危險也適用於直接執行'$ cmd')。 – 2010-04-10 13:21:59
請使用帶變量的命令(「」),cmd =「cat/proc/2345/cmdline」,將使您的生活變得更加輕鬆。 – Anders 2010-04-06 12:01:54
謝謝,我也會檢查。 – 2010-04-06 12:24:52