繁体   English   中英

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 $1 '.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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM