jqを使用してユーザー入力でJSONオブジェクトを構成する小さなbashスクリプトがあります。残念ながら、jqが複数の単語変数をキーの1つの値として受け入れるように説得することはできません。
以下はbashプロンプトの同じ例です。
空白がなければ、jqは期待どおりに動作します。
$> value="Input"
$> jq -n --arg value $value '{"key": ($value)}'
返品:
{
"key": "Input"
}
しかし、複数の単語の値が壊れます。
$> value="A multi word input"
$> jq -n --arg value $value '{"key": ($value)}'
戻りエラー:
jq: error: multi/0 is not defined at <top-level>, line 1:
multi
jq: 1 compile error
jqが$ valueの空白のために窒息しないように説得できる魔法は何ですか?
答え1
引用しない内容は$value
シェルによってトークン化されます。答えは単に引用することです。
$ jq -n --arg value "$value" '{"key": ($value)}'
{
"key": "A multi word input"
}
また、見ることができます