这是一个可行的解决方案,但不是很干净:
if [ "$(az vm list -d -o table --query "[?name=='VM_NAME']")" == "$(az vm list -d -o table --query "[?name=='ABSURD_NAME_THAT_CERTAINLY_DOES_NOT_EXIST']")" ];
then
printf "VM DOES NOT EXIST YET"
else
printf "VM ALREADY EXISTS"
fi
我无法弄清楚,
"$(az vm list -d -o table --query "[?name=='ABSURD_NAME_THAT_CERTAINLY_DOES_NOT_EXIST']")"
返回的是什么,这就是我无法缩短此解决方案的原因。
我当然不是 Bash 脚本专家,也不知道如何将结果转换为十六进制值或类似的值以使其可见。
因此,我正在寻找该解决方案的简短版本或另一种更干净的方法。不幸的是,我找不到类似az vm exists
.
您可能会使用Azure Graph来执行此操作。
你可以在这里看到一些例子。
我不久前找到了解决方案。如果没有可用的 vm,则 az vm list 命令的输出显然是空字符串。但是您必须使用一个等号而不是两个等号进行比较。