为什么以下工作没有?我试图做的就是执行一个adb
命令,如果响应包含某个字符串,那么就可以对它做些什么。
我一直收到错误[; too many arguments
VARIABLE=$(adb devices);
if [ "$VARIABLE" == *list of attached* ]; then
echo "adb command worked";
fi
有什么想法吗?
答案 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