难执行shell脚本
问题描述:
我有一个简单的脚本难执行shell脚本
...
dir=`pwd`
echo $dir
cd ./selenium-grid-1.0.8/
CMD="ant -Dport=$1 -Dhost=$2 -DhubURL=http://172.16.1.137:4444 -Denvironment="$3"-DseleniumArgs="-firefoxProfileTemplate C:/software/rc_user_ffprofile -multiWindow" launch-remote-control"
echo $CMD
$CMD 2>&1
#End
每当我运行此命令时,我得到:./register_rc.sh:第16行:C:/软件/ rc_user_ffprofile:是一个目录
此目录必须是-firefoxProfileTemplate选项的参数。我怎么包括在这个字符串没有它b ?? ??
帮助
日Thnx
答
你看上去混合您的报价了。看看StackOverflow为您做的语法突出显示。
我建议在多个步骤中生成CMD变量,并确保您能够引用您的引号。
答
我相信你的命令应该是:
CMD="ant -Dport=$1 -Dhost=$2 -DhubURL=http://172.16.1.137:4444 -Denvironment=\"$3\"-DseleniumArgs=\"-firefoxProfileTemplate C:/software/rc_user_ffprofile -multiWindow\" launch-remote-control"
的反斜杠是用来“转义”引号。
答
这里告诉你逃脱你的报价的答案是错误的。这将把这些引号直接传递给蚂蚁,我怀疑这就是你想要的。
将命令存储在变量中的原因是什么?这是一个非常糟糕的主意。你为什么不能直接写下这个命令呢?如果您想实现模块化或代码重用,请定义一个函数。
如果要显示执行的命令,请使用set -x
。
+0
优秀的建议。参见[BashFAQ/050](http://mywiki.wooledge.org/BashFAQ/050)了解更多信息(也适用于ksh等)。 – 2010-10-23 00:43:00
谢谢你。感谢您的回答 – Afamee 2010-10-19 16:37:43