我正在构建一个bash脚本,该脚本将从API读取响应,并在[]列表(而不是{}数组)中插入一个值(如果值不存在).接口返回假例:
#response.json contains:
{
"foods": {
"menu": [
"tacos",
"spaghetti",
"pizza",
"chicken_florentine",
"bacon_cheeseburge",
"chow_mein",
"sushi",
"chocolate",
"whiskey"
]
}
}
我的bash脚本中的变量是order="lasagna"
.如果'foods.menu[]'
包含$order
,则不执行任何操作,否则将$order
值插入'foods.menu[]'
.
使用'foods.menu[]'
中当前不存在的bash变量order="lasagna"
,得到的json应该是:
{
"foods": {
"menu": [
"tacos",
"spaghetti",
"pizza",
"chicken_florentine",
"bacon_cheeseburge",
"chow_mein",
"sushi",
"chocolate",
"whiskey",
"lasagna" <----
]
}
}
一开始,我try 了bash for
循环以及JQ的if-then-else
、select
和contains
的变种,但都失败了.如有任何帮助,我们不胜感激.