我有一个在bash
脚本中执行的命令。如果我直接在控制台中运行命令,它工作正常,但如果我把它放在脚本中并执行脚本,它会抛出以下错误:
错误的命令行参数
我在控制台中成功执行的命令是:
output=`java -jar myjar.jar -agent iOS -host localhost /Users/vskumar/monkeytalk/workspace/MonkeyProject/'shoppingcart_deleteproduct - Online_V2.mt'`
在脚本中,它看起来像这样:
output=`java -jar $JAR_LOCATION/$JAR_LIST -agent $AGENT_NAME -host $HOST -reportdir $REPORT_DIR/$rep_date $MT_TEST_ROOT_DIR/$SUBSTRING`
其中$MT_TEST_ROOT_DIR
的值为
/Users/vskumar/monkeytalk/workspace/MonkeyProject
,$SUSBSTRING
的值为
'shoppingcart_deleteproduct - Online_V2.mt'
答案 0 :(得分:4)
请注意,$ SUSBSTRING变量中有空格被解释为多个参数。为了解决这个问题,只需在变量周围添加双引号:
output=`java -jar "$JAR_LOCATION"/"$JAR_LIST" -agent "$AGENT_NAME" -host "$HOST" -reportdir "$REPORT_DIR"/"$rep_date" "$MT_TEST_ROOT_DIR"/"$SUBSTRING"`