【问题标题】:"Bad command-line arguments" error in bash script but not in consolebash 脚本中的“命令行参数错误”错误,但控制台中没有
【发布时间】:2016-06-10 10:28:56
【问题描述】:

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

【问题讨论】:

  • 引用你的变量。

标签: bash scripting arguments


【解决方案1】:

请注意,$SUSBSTRING 变量中的空格会被解释为多个参数。为了解决这个问题,只需在变量周围加上双引号:

 output=`java -jar "$JAR_LOCATION"/"$JAR_LIST" -agent "$AGENT_NAME" -host "$HOST" -reportdir "$REPORT_DIR"/"$rep_date" "$MT_TEST_ROOT_DIR"/"$SUBSTRING"`

【讨论】:

  • 即使是那些没有空格的人?
  • 引用所有变量是个好习惯,你永远不知道空格什么时候会出现......
猜你喜欢
  • 2018-01-18
  • 2020-01-12
  • 1970-01-01
  • 2015-08-29
  • 1970-01-01
  • 2016-02-19
  • 1970-01-01
  • 2020-09-19
  • 2012-12-02
相关资源
最近更新 更多