
這是一個可行的解決方案,但不是很乾淨:
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
。
答案1
答案2
我不久前找到了解決方案。如果沒有可用的 vm,則 az vm list 指令的輸出顯然是空字串。但您必須使用一個等號而不是兩個等號進行比較。
if [ "$(az vm list -d -o table --query "[?name=='VM_NAME']")" = "" ];
then
echo "No VM was found."
else
echo "VM was found."
fi