Bash 带有空变量的If语句

Bash 带有空变量的If语句,bash,if-statement,Bash,If Statement,我不能让它正常工作。如果wifissid为空,则需要显示“无线:未连接”。如果wifissid不是空的,它需要显示“无线:连接到$wifissid” 试试这个。-z检查$wifissid是否(!)为空/空(-z)。或者使用与基本相同的-n-z。有关这些运营商的更多详细信息: 另外,我不明白为什么在else语句中有exit,因为这会阻止echo的发生。所以我删除了它并将其添加到脚本的底部 此外,我还添加了#/bin/bash添加到脚本顶部,因为这正是您应该养成的习惯。它有助于防止出现以下问题:如果

我不能让它正常工作。如果wifissid为空,则需要显示“无线:未连接”。如果wifissid不是空的,它需要显示“无线:连接到$wifissid”


试试这个。
-z
检查
$wifissid
是否(
)为空/空(
-z
)。或者使用与
基本相同的
-n
-z
。有关这些运营商的更多详细信息:

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

此外,我还添加了
#/bin/bash
添加到脚本顶部,因为这正是您应该养成的习惯。它有助于防止出现以下问题:如果此脚本作为cron作业运行,则默认的
sh
而不是
bash
将解释脚本&它将失败


可能看起来很小,但如果事情不按预期进行,这些小事情会让你发疯。

或者干脆
-n
而不是
-z
@AdamRosenfield番茄,番茄酱。谢谢。发帖几秒钟后我就明白了。
wifissid=Test

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

echo "  $WirelessOutput"
#!/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