如果存在数据库则返回1,否则返回0。
az sql db list --resource-group demo-group --server demo-server --query "[?name == 'debo-database'] | length(@)"
问题是如何在
这样的条件下使用它[ $(az sql db list --resource-group demo-group --server demo-server --query "[?name == 'debo-database'] | length(@)") -eq 1 ] && echo "exists"
上述情况没有按计划进行…
您错误地检查了stdout输出命令的值"1"代替它的返回码. 对非零返回码使用&&
条件链(通过用!
反转原始az
返回码的意义):
! az sql db list --resource-group demo-group --server demo-server --query "[?name == 'debo-database'] | length(@)" && echo "exists"
…或者同样的事情,但更详细地使用if
语句:
if ! az sql db list --resource-group demo-group --server demo-server --query "[?name == 'debo-database'] | length(@)"; then echo "exists"; fi
上面检查az
的任何非零返回码。更明确地检查返回码是否为1:
az sql db list --resource-group demo-group --server demo-server --query "[?name == 'debo-database'] | length(@)"
case $? in
(1) echo "exists";;
esac