我想知道如何转义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周围尝试的所有转义\"
\'
似乎都不起作用
1条答案
按热度按时间sqougxex1#
首先,要使用变量,它不能用引号括起来。
与
第二,你永远不要在jq程序中设置
$newvalue
。