Bash脚本 - 参数太多了

时间:2014-01-27 02:33:18

标签: bash shell

为什么以下工作没有?我试图做的就是执行一个adb命令,如果响应包含某个字符串,那么就可以对它做些什么。

我一直收到错误[; too many arguments

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

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

尝试引用[[ and ]]中的参数:

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

==需要任何一方的单一论点。当您使用[ "$VARIABLE" == *list of attached* ]时,*list==之后的第一个参数,其余被视为额外参数。

答案 1 :(得分:1)

您也可以尝试使用BASH的二元运算符=~进行正则表达式匹配:

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