我正在使用 jq 解析 JSON 数据并根据作为命令行参数给出的动态键值提取一个值。我注意到这是可行的,但我对它如何$v
在单引号内插值持怀疑态度。'.["\($v)"]'
是否可以在双引号内重写表达式?我究竟做错了什么?
无论出于何种原因,尝试以下操作都不起作用:
recipe_url=$(cat ./*.json | jq -r --arg v "$recipe_key" ".[\"\\($v)\"]")
但是,这样做:
recipe_key='Wilted Greens' # example key to interpolate
recipe_url=$(cat ./*.json | jq -r --arg v "$recipe_key" '.["\($v)"]') # works!