我从VMware Tools检索主机名并尝试评估我的脚本中是否存在两个变量:
selection=2
# Check if hostname is present in guestinfo
hostname="$(vmtoolsd --cmd "info-get guestinfo.startup.hostname")"
if [[ "$selection" = 2 && ! -z ${hostname+x} ]]
then
echo "Args present."
else
echo "Args NOT present."
fi
无论是否在VMX配置文件中设置了主机名值,if语句都会返回" Args存在。"
我相信这是因为执行了vmtoolsd命令,这意味着'主机名'变量不为空。不确定如何解决。
有什么问题?
答案 0 :(得分:0)
首先,清理你的测试 - 不要使用! -z,当你有一个-n。
此外,如果要将x添加到主机名,它将始终为true(它将始终返回x)。 Bash永远不需要+ x,摆脱它。
if [[ "$selection" = 2 && -n $hostname ]]; then
echo "Args present."
else
echo "Args NOT present."
fi