2014-06-15 114 views
0

我无法使其正常工作。如果wifissid为空,则需要显示“无线:未连接”。如果wifissid不为空,则需要显示“Wireless:Connected to $ wifissid”如果声明包含空白变量

wifissid=Test 

if [ $wifissid = "*" ]; then 
    WirelessOutput="  Wireless: Connected To $wifissid" 
else 
    WirelessOutput="  Wireless: Not Connected" 
    exit 
fi 

echo " $WirelessOutput" 

回答

1

试试这个。 ! -z检查$wifissid是否为(!)empty/null(-z)。或使用与! -z基本相同的-n。这些运营商here更多细节:

#!/bin/bash 
wifissid=Test 

# if [ -n "$wifissid" ]; then 
if [ ! -z "$wifissid" ]; then 
    WirelessOutput="  Wireless: Connected To $wifissid" 
else 
    WirelessOutput="  Wireless: Not Connected" 
fi 

echo " $WirelessOutput" 
exit 

另外,我不明白为什么你在else声明中有一个exit因为这将阻止echo从不断发生。所以我删除了它并将其添加到脚本的底部。

此外,我将#!/bin/bash添加到脚本的顶部,因为这只是您应该习惯做的事情。它有助于防止出现问题,例如,如果此脚本作为cron作业运行,则默认sh而不是bash会解释脚本&它会失败。

可能看起来像小事,但如果/当事情不像预期的那样工作时,这些小事会让你疯狂。

+1

或者只是'-n'而不是'! -z'。 –

+0

@AdamRosenfield西红柿,tomatoe。 – JakeGould

+1

谢谢。在发布问题后几秒钟我就想出了它。 – Seaner992