【发布时间】:2022-07-29 16:19:16
【问题描述】:
目标:尝试使用 bash 脚本检查 azure 上是否存在资源
我使用的代码:
status=$(az group list --query "[?name.contains(@,'test')]")
if [[ "$status" == null ]];
then
echo "not exist"
else
echo "exist"
fi
我在天蓝色中有这个资源,即它应该返回为“存在”,但它说不存在 如果我更改为不存在的资源组名称,那么时间也不存在。
您在这里看到任何语法问题吗?
如果我在命令行执行检查而不是脚本,下面是结果
user@ablab:~$ status=$(az group list --query "[?name.contains(@,'abcd')]")
user@ablab:~$ echo $status
[]
user@ablab:~$ status=$(az group list --query "[?name.contains(@,'test')]")
user@ablab:~$ echo $status
[ { "id": "/subscriptions/xxxx-xxxx-xxx--xxxxx3/resourceGroups/test1", "location": "westeurope", "managedBy": null, "name": "test1", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" } ]
现在我想使用 if 条件,如果它存在,它应该处理一组流程,否则处理一组代码..
请让我知道我的 if 语句有什么问题。
【问题讨论】: