希望能够将多个参数传递到 jq 语句中,如下所示:
jq --arg ARG1 ${var1} ARG2 ${var2} '.$ARG1[$ARG2 | tonumber].width'
@rclod - 您可以通过重复“--arg NAME VALUE”模式传入任意数量的命名参数。
谢谢! 我之前尝试过,但忘记在我的变量调用周围加上引号。
这最终按预期工作:
jq --arg ARG1 ${var1} --arg ARG2 ${var2} '."$ARG1"[$ARG2 | tonumber].width'
@rclod - 由于不同版本的 jq 之间存在差异,有时仅使用.[s]
而不是.s
形式会更简单。 或者在您的情况下: .[$ARG1][$ARG2]
你是对的,引号最终不起作用,但括号起作用了。
jq --arg ARG1 ${var1} --arg ARG2 ${var2} '.[$ARG1][$ARG2 | tonumber].width'
最有用的评论
你是对的,引号最终不起作用,但括号起作用了。
jq --arg ARG1 ${var1} --arg ARG2 ${var2} '.[$ARG1][$ARG2 | tonumber].width'