Json 将多个变量而不是文件传递给jq命令

Json 将多个变量而不是文件传递给jq命令,json,shell,jq,Json,Shell,Jq,我在shell脚本中有两个变量,每个变量包含一个JSON数据 我想使用命令合并这些 jq '.' $var1 $var2 其中echo$var1=>{“key1”:“value1”} 但是它不起作用,但是当我分别将这些变量的内容写入file1和file2时,它工作得很好 它工作得很好。 关于如何将多个变量传递给jq命令的任何帮助都将不胜感激。如果“合并”的意思类似于jq的add,那么您可以简单地编写: jq -n "$var1 + $var2" 更一般地说,如果jq支持--argson命令行

我在shell脚本中有两个变量,每个变量包含一个JSON数据

我想使用命令合并这些

jq '.' $var1 $var2
其中
echo$var1=>{“key1”:“value1”}

但是它不起作用,但是当我分别将这些变量的内容写入file1和file2时,它工作得很好 它工作得很好。 关于如何将多个变量传递给jq命令的任何帮助都将不胜感激。

如果“合并”的意思类似于jq的
add
,那么您可以简单地编写:

jq -n "$var1 + $var2"
更一般地说,如果jq支持--argson命令行选项,那么您可以使用它;否则,您可以使用-arg,但在进行任何必要的转换时都需要小心。在这两种情况下,您可能还希望使用-n命令行选项

如果您使用的是bash之类的shell,那么另一组选项基于进程替换,例如

jq -s add <(echo "$var1") <(echo "$var2")

最后,如果shell变量已经导出(即,如果它们作为“环境”变量可用),那么您可以使用jq的
env
函数:
env.var1+env.var2

发布您的
$var1$var2
内容为什么不直接使用
echo“$var1$var2”
如果要合并这两个变量?
jq--argjson var1“$var1”--argjson var2“$var2”-n'$var1+$var2'
谢谢,除了前面的正确语法之外,我几乎尝试过这种方法。
jq-s add$var1$var2在
var1=true;var2=false
,但添加空格应该可以。
jq -s add <(echo "$var1") <(echo "$var2")
jq -s add "$var1 $var2"