比较shell中的两个字符串,一个来自命令return

时间:2015-11-23 09:03:44

标签: string shell variables if-statement bluetooth

我想比较两个字符串,以便知道我的蓝牙是使用blueutil打开还是关闭

我试过了:

cd ../../../usr/local/bin
./blueutil status
a=$(./blueutil status)
printf "$a\n"
if [ "$a" = "Status: on" ]
    then echo "ok"
else
    echo "not ok"
fi

但回报是

Status: on
Status: on
not ok

我在if语句中的测试有什么问题?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我不知道blueutil是什么,但您的脚本似乎有语法错误。在某些地方,空白是至关重要的,错过它们会导致错误的结果。特别是,您在[之前,]之前和=之前错过了空格。也就是说,您的条件应该是:

if [ "$a" = "Status: on" ]
    then echo "ok"
else
    echo "not ok"
fi