Linux 只要输出包含一些字符串,就进行检查。并将其添加到逻辑if语句中?

Linux 只要输出包含一些字符串,就进行检查。并将其添加到逻辑if语句中?,linux,string,bash,Linux,String,Bash,所以基本上我需要每10分钟扫描一次我的接入点。此作业通过使用此命令完成 ssid=iw wlan0 scan | grep -E 'MY SSID NAME' 输出是这样的 SSID: MY SSID NAME 但是当我使用上面的输出命令添加一些if-else时,它失败了 if [[ $ssid == "SSID: MY SSID NAME" ]] then echo "SSID Detected" else echo "SSID NOT Detected" fi 它将返回错误语句(“未检

所以基本上我需要每10分钟扫描一次我的接入点。此作业通过使用此命令完成

ssid=iw wlan0 scan | grep -E 'MY SSID NAME'
输出是这样的

SSID: MY SSID NAME
但是当我使用上面的输出命令添加一些if-else时,它失败了

if [[ $ssid == "SSID: MY SSID NAME" ]]
then
echo "SSID Detected"
else
echo "SSID NOT Detected"
fi
它将返回错误语句(“未检测到SSID”)。事实上,我的SSID是可用的和广播的。 需要帮助。

谢谢:)

您可以测试grep的退出状态,而不是结果,即

if iw wlan0 scan | grep -q 'MY SSID NAME'; 
then echo "Detected"; 
else echo "Not Detected"; 
fi

您可以测试grep的退出状态,而不是结果,即

if iw wlan0 scan | grep -q 'MY SSID NAME'; 
then echo "Detected"; 
else echo "Not Detected"; 
fi

看,还是没有运气。将变量更改为:ssid=
iw wlan0 scan | grep-E“我的ssid名称”
(添加反勾号)对变量值进行扫描。仍然直接转到false条件这可能会有所帮助:
echo“@$ssid@”
打印什么?字符串
SSID:MY SSID NAME
周围有空格吗?请参阅:仍然没有运气。将变量更改为:ssid=
iw wlan0 scan | grep-E“我的ssid名称”
(添加反勾号)对变量值进行扫描。仍然直接转到false条件这可能会有所帮助:
echo“@$ssid@”
打印什么?字符串
SSID:MY SSID NAME
周围是否有空格?