我正在按照here的说明从服务器(ubuntu 12.04)获取主机名和IP地址。它工作正常。过了一会儿,我意识到服务器在离线时返回“(none)”作为主机名。现在我试图通过比较hostname和“(none)”来消除这个错误。我尝试了所有这些(*),但没有一个有效:
-- Getting hostname here
hostname=$(grep "host-name" /var/lib/dhcp/dhclient.${interface}.leases | tail -n1 | cut -d"\"" -f2 | cut -d"." -f1)
-- Trying to compare it with "(none)"
* if [ "$hostname" != "(none)" ] then ... else ... fi
* if [[ $hostname != "(none)" ]] then ... else ... fi
* nouser="(none)" if [ "$hostname" != "$nouser" ] then ... else ... fi
我做错了什么?感谢任何帮助。
答案 0 :(得分:1)
]
if [ ... ]; then ...; else ...; fi
或换行:
if [ ... ]
then
...
else
...
fi
答案 1 :(得分:1)
这应该有用;
hostname="(foo)"
if [ "$hostname" == "(foo)" ]; then echo "equals"; else echo "not equals"; fi
答案 2 :(得分:0)
使用$HOSTNAME
- 我的推理,用户可以验证其他$
变量:
wilf @ comp:〜$ echo $ hostname
wilf @ comp:〜$ echo $ HOSTNAME
补偿
维尔夫@排版:〜$
出于某种原因,$hostname
似乎不起作用(Ubuntu 13.10,没有在其他Linux上试过这个)