【发布时间】:2015-06-25 08:48:50
【问题描述】:
我在 cmd 变量中设置了 find 语法:,我使用 ksh shell/bash
# cmd=" find /usr/cti/conf -name \"*.tgz*\" "
# echo $cmd
find /usr/cti/conf/ -name "*.tgz*"
那么为什么当我想像下面这样运行 cmd 时,我实际上并没有激活 find ...
# exec $cmd
appserver1a:/var/tmp/ ROOT # ( this exit from the shell )
当我用双括号运行时它也不起作用
exec "$cmd"
ksh: find /usr/cti/conf/backup -name "*.tgz*" : not found
解决方法是什么?
备注我不想这样设置 cmd(这是可行的)
cmd=` find /usr/cti/conf/backup -name "*.tgz*" `
或
cmd=$( find /usr/cti/conf/backup -name "*.tgz*" )
【问题讨论】:
-
如果只说:
$cmd而不是exec "$cmd"会发生什么? -
你可以试试
cmd=(find /usr/cti/conf/backup -name "*.tgz*")然后执行${cmd[@]}。