我正在尝试为检查点管理服务器 api 编写 bash 脚本,但遇到了一些问题。
我想获取 json 字典中的值,为此我必须使用变量。我正在输入这个命令:
echo $rulebase | jq --arg n "$0" '.rulebase[$n].to'
我得到下一个错误:
jq: error: Cannot index array with string
但是,如果我使用:
echo $rulebase | jq '.rulebase[0].to'
我得到了我需要的结果。我不知道如何在变量为数字时使用变量,有人可以帮助我吗?
最佳答案
如果要传入数值,请使用
—-argjson
而不是
—-arg
, 用于 JSON 字符串值。如果您的 jq 不支持 —argjson,那么现在可能是升级的绝佳时机;否则,您可以使用
tonumber
.
关于json - jq:错误:无法用字符串索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53261746/