给定一个JSON文件,arguments.json:
arguments.json
{"dagger": true, "version": false, "nether_strike": true, "greater_bash": "5", "FILE": "ancientscroll.txt", "empower_haste": "1", "help": false}
我可以jq在shell中阅读using 并分别初始化变量:
jq
dagger=$(cat arguments.json | jq '.["dagger"]') greater_bash =$(cat arguments.json | jq '.["greater_bash"]') echo $dagger echo $greater_bash
有没有办法读取JSON文件中的所有键值对,然后在shell中相应地初始化所有变量?
您可以遍历键/值对,并用于declare动态创建变量名。
declare
while read -r name value; do declare "$name=$value" done < <(jq -r 'to_entries[] | "\(.key) \(.value)"' arguments.json)