JSONファイル内のすべてのキーと値のペアを読み取り、それからシェル内でそれに応じてすべての変数を初期化する方法はありますか?

JSONファイル、arguments.jsonがあるとします。

{"dagger": true, "version": false, "nether_strike": true, 
 "greater_bash": "5", "FILE": "ancientscroll.txt", 
 "empower_haste": "1", "help": false}

シェルでjqを使って読み、変数を個別に初期化できます。

dagger=$(cat arguments.json | jq '.["dagger"]')
greater_bash =$(cat arguments.json | jq '.["greater_bash"]')    

echo $dagger
echo $greater_bash

JSONファイル内のすべてのキーと値のペアを読み取り、それからシェル内でそれに応じてすべての変数を初期化する方法はありますか?

ベストアンサー
キーと値のペアをループして、declareを使用して変数名を動的に作成できます。

while read -r name value; do
    declare "$name=$value"
done < <(jq -r 'to_entries[] | "\(.key) \(.value)"' arguments.json)

転載記事の出典を記入してください: JSONファイル内のすべてのキーと値のペアを読み取り、それからシェル内でそれに応じてすべての変数を初期化する方法はありますか? - コードログ