引用一个 json 文件并将其作为 json 散列传递到命令参数的 json 输入中

Reference a json file and pass it as json hash into a json input for a command argument

我有一个名为“input.json”的 json 文件:

{
  "item1": "banana",
  "item2": false
}

我有一个 bash 命令接受 json 输入,然后将上述文件内容的散列作为“输入”键的值:

executable '{"input": {"item1": "banana", "item2": false}, "option1": "value1", "option2": "value2" }'

如何将 input.json 文件中的 json 内容传递到命令中?我试过:

感谢任何帮助或指点。

您可以按照您指示的步骤进行操作,应该可以。创建 base64 内容,将其存储在变量中并将其传递给 jq

#!/usr/bin/env bash
# Bash script to construct a base64 of a JSON content and passing
# it to an another command

# Create the base64
base=$(jq -c . input.json | base64)

# Create the JSON that stores the above hash
json=$(jq -cn --arg b64 "$base" '{"input": $b64, "option1": "value1", "option2": "value2" }')

# If you want the JSON to be a literal string, use the '@text' filter
# with 'jq'
jsonString=$(jq -cn --arg b64 "$base" '{"input": $b64, "option1": "value1", "option2": "value2" } | @text')

# Pass the contents of either 'json' or 'jsonString', depending on 
# how your executable parses the command line argument