"错误的命令行参数" bash脚本中的错误,但在控制台中没有

时间:2016-02-27 01:47:02

标签: bash scripting arguments

我有一个在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'

1 个答案:

答案 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"`