2014-06-15 111 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