You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Azure CLI执行产生的错误输出存储到变量中

Azure CLI 错误输出捕获方案

Azure CLI 的错误信息默认输出到标准错误流(stderr),常规变量赋值只会捕获标准输出流(stdout)内容,这是无法捕获报错的核心原因,不同shell环境下的解决方法如下:

Bash/Zsh 环境

  • 合并捕获标准输出和错误输出到同一变量:
    只需将stderr重定向到stdout即可,示例如下:
    # 执行命令并捕获所有输出到result变量
    result=$(az group show -n "rgname" 2>&1)
    
    执行后$result会完整包含(ResourceGroupNotFound) Resource group 'rgname' could not be found这类错误信息。
  • 分离捕获标准输出和错误输出(便于后续逻辑判断):
    # 分别存储输出内容、错误内容,同时获取命令退出码
    stdout=$(az group show -n "rgname" 2>./tmp_cli_err)
    stderr=$(cat ./tmp_cli_err && rm -f ./tmp_cli_err)
    exit_code=$?
    
    if [[ $exit_code -eq 0 ]]; then
      # 执行成功,正常解析stdout内容,可搭配--query参数提取字段
      echo "查询成功,资源组信息:$stdout"
    else
      # 执行失败,读取stderr的报错内容
      echo "查询失败,错误信息:$stderr"
    fi
    

PowerShell 环境

通过重定向和内置退出码变量实现捕获:

# 捕获所有输出到result变量
$result = az group show -n "rgname" 2>&1

if ($LASTEXITCODE -ne 0) {
  $err_msg = $result.ToString()
  Write-Host "查询失败,错误信息:$err_msg"
} else {
  Write-Host "查询成功,资源组信息:$result"
}

优化技巧

你可以在Azure CLI命令后添加--only-show-errors参数,过滤冗余的警告信息,确保捕获到的错误内容仅包含核心报错。


内容的提问来源于stack exchange,提问作者Ramakrishna Yelduti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 08:54:07