web-dev-qa-db-ja.com

jsonからフィールドを取得し、bashスクリプトの変数に割り当てますか?

JsonFileにjsonストアがあります

{
  "key1": "aaaa bbbbb",
  "key2": "cccc ddddd"
}

mycode.shにコードがあります:

#!/bin/bash
value=($(jq -r '.key1' jsonFile))
echo "$value"

./mycode.shを実行すると、結果はaaaaになりますが、jq -r '.key1' jsonFileを実行しただけでは、結果はaaaa bbbbbになります。

誰か助けてもらえますか?

19
user3441187

そのコード行で

value=($(jq -r '.key1' jsonFile))

両方の値を array に割り当てます。外側の括弧が()コマンドの周り。したがって、値に個別にアクセスしたり、配列全体の内容をエコーし​​たりできます。

$ echo "${value[@]}"
aaaa bbbb

$ echo "${value[0]}"
aaaa

$ echo "${value[1]}"
bbbb

$value取得する値を指定せずに、配列の最初の値のみを取得します。

21
Saucier