我想知道我怎么能逃避newValue所以jq替换值:
#!/bin/sh
test="{ "one.one" : { "version" : "0.0.1" }, "two.two" : { "version" : "0.0.2" } }"
newvalue="3.3.3"
newjson=$(echo $test | jq '."two.two".version = "$newvalue" ')
echo $newjson
输出:
{ "one.one": { "version": "0.0.1" }, "two.two": { "version": "$newvalue" } }
没有转义我尝试"
'
周围$newvalue似乎工作
首先,变量不能用引号括起来。替换
"$newvalue"
$newvalue
其次,您从未在jq程序中设置$newvalue
。要实现这一点,您可以使用以下命令:
--arg newvalue "$newvalue"