在 Azure CLI 中串联查询表达式

Concatenating a query expression in Azure CLI

我正在尝试查询软删除的 Azure 密钥保管库列表,然后确定是否列出了特定密钥保管库的名称。

 keyVaultName=whatever
 az keyvault list-deleted --query "[?contains(name, $keyVaultName)]" -o json

产生输出...

az keyvault list-deleted: error: argument --query: invalid jmespath_type value: '[?contains(name,whatever)]'

显然我需要用单引号将变量名括起来——但是怎么做呢?是否有某种字符串连接函数?

contains return true or false,格式为

boolean contains(array|string $subject, any $search)

你可以试试这个

kv=nancykeyvault
az keyvault list-deleted --query "contains([].name,'$kv')"

或者,像这样将变量用单引号括起来,它默认输出为 JSON 格式。

az keyvault list-deleted --query "[?contains(name,'$kv')]"