bash脚本 - 参数太多(Bash script - too many arguments)

2019-10-19 06:36发布

为什么没有了以下工作? 所有我想要做的是执行adb命令,如果响应包含特定字符串,然后做一些事情。

我不断收到错误[; too many arguments [; too many arguments

VARIABLE=$(adb devices);
if [ "$VARIABLE" == *list of attached* ]; then
  echo "adb command worked";
fi

有任何想法吗?

Answer 1:

尝试引用内部参数[[ and ]]

VARIABLE="$(adb devices)"
if [[ "$VARIABLE" == *"list of attached"* ]]; then
  echo "adb command worked";
fi

==需要在左右两侧单个参数。 当您使用[ "$VARIABLE" == *list of attached* ]那么*list是以后的第一个参数==和其他被认为是额外的参数。



Answer 2:

你可以或者尝试使用bash的二进制运算符=~做正则表达式匹配:

VARIABLE="$(adb devices)"
if [[ $VARIABLE =~ list\ of\ attached ]]; then
    echo "adb command worked"
fi


文章来源: Bash script - too many arguments
标签: bash shell