我有一个简单的脚本
...
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:/ software / rc_user_ffprofile:是一个目录
此目录必须是-firefoxProfileTemplate选项的参数。我怎么把它包含在这个字符串中而不用它呢?
帮助
日Thnx
答案 0 :(得分:1)
我相信你的命令应该是:
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"
反斜杠用于“转义”引号。
答案 1 :(得分:1)
这里的答案告诉你逃避你的报价是错误的。这会将这些引用直接传递给蚂蚁,我怀疑这就是你想要的。
将命令存储在变量中的原因是什么?这是一个非常糟糕的主意。为什么你不能按原样编写该命令?如果要实现模块化或代码重用,请定义一个函数。
如果要显示已执行的命令,请使用set -x
。
答案 2 :(得分:0)
看起来你正在混淆你的报价。看一下StackOverflow为您做的突出显示的语法。
我建议您分多步生成CMD变量,并确保您对引号进行操作。