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

String 比较shell中的两个字符串,一个来自命令返回,string,shell,variables,if-statement,bluetooth,String,Shell,Variables,If Statement,Bluetooth,我想比较两个字符串,以了解我的蓝牙是否在使用 我试过这个: 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语句中的测试有什么问题 提前感谢您的帮助 我不知道什

我想比较两个字符串,以了解我的蓝牙是否在使用

我试过这个:

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语句中的测试有什么问题


提前感谢您的帮助

我不知道什么是
blueutil
,但您的脚本似乎有语法错误。在某些地方,空白是至关重要的,缺少空白会导致错误的结果。特别是,您缺少
[
之后、
]
之前以及
=
周围的空格。也就是说,您的条件应为:

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

哦,兄弟。。。首先,我们需要知道您从中得到了什么。
/blueutil
?正值是否表示打开,负值(或零值)是否表示关闭?您是值
-1、0、1
还是不同的值?好的,您是对的。/blueutil状态给出了第一个状态:开,所以它不是布尔值……感谢您的帮助,我更新了它,但它仍然不工作。。。作为记录,./blueutil status在蓝牙打开时返回“status:on”,在蓝牙关闭时返回“status:off”。请用新代码更新您的问题。最好是在当前代码下面添加,以便维护历史记录。它适用于不使用blueutil的应用程序。好吧,似乎我有一个打字错误,这意味着一个错误!它现在正在工作,非常感谢!