【发布时间】:2021-03-13 09:16:28
【问题描述】:
我在尝试从同一个 bash 脚本对新创建的 JSON 数组/文件迭代地追加新值时遇到了困难。 考虑以下简单的脚本 sn-p:
echo "Enter name: "
read name
echo "Enter Car Model: "
read car
echo "Enter Colour: "
read colour
echo
jq -n --arg name "$name" --arg car "$car" --arg colour "$colour" '{"profiles":[{"name": $name, "car": $car, "colour": $colour}]}' > model.json
echo
cat model.json | jq .
这个输出:
Enter name:
Joe
Enter Car Model:
BMW
Enter Colour:
Red
{
"profiles": [
{
"name": "Joe",
"car": "BMW",
"colour": "Red"
}
]
}
我希望它最终做的事情是这样的,动态的:
Enter name:
Joe
Enter Car Model:
BMW
Enter Colour:
Red
{
"profiles": [
{
"name": "Joe",
"car": "BMW",
"colour": "Red"
},
{
"name": "Peter",
"car": "Nissan",
"colour": "White"
}
]
}
等等……
我知道我需要在第一组 key:value 条目之后使用循环,但是我将如何附加到新创建的 model.json 文件而不是通过 jq 在 bash 脚本中覆盖初始值?
非常感谢
【问题讨论】:
标签: arrays json bash append jq