如果声明为空白变量

时间:2014-06-15 05:13:21

标签: bash if-statement

我无法正常使用此功能。如果wifissid为空白,则需要显示" Wireless:Not Connected"。如果wifissid不是空白​​,则需要显示"无线:连接到$ wifissid"

wifissid=Test

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

echo "  $WirelessOutput"

1 个答案:

答案 0 :(得分:1)

试试这个。 ! -z检查$wifissid是否为!)为空/空(-z)。或者使用-n,它基本上与! -z相同。有关这些运算符的更多详细信息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

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

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

可能看起来像小东西,但如果/当事情没有按预期发挥作用时,那些会让你疯狂的小事情。