Ubuntu Shell 脚本 - 将 jq 与 args 结合使用

Ubuntu Shell Script - Use jq with args

我正在尝试使用 jq 程序在 shell 脚本中编辑 json 文件。 json 文件格式如下:

{
    "bla": {
        "test1": "True",
        "test2": "False"
    }
}´

我想设置一个参数来定义应该更改 "bla" 中的哪个值。我想像这样启动脚本:

$ ./myscript.sh test1

我这样试过:

#!/bin/sh

jq --arg v  '.pokemon.$v = "True"' filters.json > tmp.$$.json && mv tmp.$$.json filters.json

但它不起作用。我收到以下错误:

error: syntax error, unexpected '$', expecting IDENT
.pokemon.$v = "True"
         ^
1 compile error

有人知道怎么解决吗?

如果要在下标中使用变量,则需要使用 [...] 下标语法而不是 . 语法:

.pokemon[$v] = "True"