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

如何在Bash中从JSON输出提取两个属性值并分配给专属变量

更简洁的Bash变量赋值方案

你可以直接通过read命令一步完成两个变量的赋值,省去中间数组的中转步骤,以下是几种更简洁的实现方式:

基础简洁版

适用于应用名称不含空格的场景:

read -r APP_ID APP_DISPLAY_NAME < <(az ad sp show --id "$spn_id" --query '[appId, displayName]' -o tsv | tr -d '\r')

兼容含空格名称的版本

如果应用的显示名称包含空格,指定制表符作为分隔符(TSV的默认分隔符)可以确保名称被完整读取:

IFS=$'\t' read -r APP_ID APP_DISPLAY_NAME < <(az ad sp show --id "$spn_id" --query '[appId, displayName]' -o tsv | tr -d '\r')

说明

  • 使用< <()是为了避免子shell环境导致变量无法在当前shell中生效;
  • -r参数防止read命令解析输入中的转义字符;
  • tr -d '\r'用于处理Windows风格的换行符(如果你的环境存在这类问题)。

验证效果:

echo "$APP_ID"
echo "$APP_DISPLAY_NAME"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:41:29