【问题标题】:Concatenating a query expression in Azure CLI在 Azure CLI 中连接查询表达式
【发布时间】:2026-01-28 21:25:02
【问题描述】:

我正在尝试查询软删除的 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)]'

所以显然我需要用单引号将该变量名括起来 - 但是如何?是否有某种字符串连接功能?

【问题讨论】:

    标签: azure-cli jmespath


    【解决方案1】:

    contains返回真假,格式为

    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')]"
    

    【讨论】: