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"
我正在尝试使用 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"