JQ json路径单引号和变量 [英] jq json path single quotes and variable
本文介绍了JQ json路径单引号和变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
尝试找出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
有什么建议如何使用该变量更正此语法吗?
推荐答案
试试这个。
jq -c --arg basejq "${base}"
--arg tempvarjq "${tempvar}"
'.auths[$tempvarjq].auth= $basejq'
../post-auth/docker-auth.json
> ../post-auth/docker-auth.json.tmp &&
mv ../post-auth/docker-auth.json.tmp
../post-auth/docker-auth.json
这篇关于JQ json路径单引号和变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文