jq json路径单引号和变量

时间:2019-01-14 15:51:39

标签: json bash jq

试图弄清楚jq的语法。 这行工作正常:

echo $(cat ../post-auth/rkt-auth.json | jq -c --arg user ${vsphere_user} '.credentials.user = $user') > ../post-auth/rkt-auth.json

但是,当变量是json路径的一部分时,情况并非如此:

echo $(cat ../post-auth/docker-auth.json | jq -c --arg basejq ${base} --arg tempvarjq ${tempvar} '.auths.$tempvarjq.auth= $basejq') > ../post-auth/docker-auth.json

错误:

jq: error: syntax error, unexpected '$', expecting FORMAT or QQSTRING_START (Unix shell quoting issues?) at <top-level>, line 1:
.auths.$tempvarjq.auth= $basejq       
jq: 1 compile error

任何建议如何使用该变量更正此语法?

1 个答案:

答案 0 :(得分:2)

尝试一下。

lookup