执行命令
我有一个地方命令存储在一个变量执行命令
首先我得到命令(假设“的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