带有 args 的 jq 搜索返回空值,适用于硬编码字符串

cap*_*rix 0 macos bash jq

我有一行使用 jq 从 json 获取变量,当我使用硬编码的字符串时它工作正常,但是当我传入一个--arg然后它返回 null

输出指定键值的工作代码

jq '.regions."us-west-2"' ids.json 
Run Code Online (Sandbox Code Playgroud)

输出的代码 null

jq --arg region "us-east-1" '.regions."$region"' ids.json
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激

gle*_*man 8

使用索引表示法而不是点表示法:

jq --arg region "us-east-1" '.regions[$region]' ids.json
Run Code Online (Sandbox Code Playgroud)

  • 这比我能更好地解释它:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors (2认同)