如何使用bash在动态变量中用新值更新字段?
我在一个变量中存储了一些curl输出,下面是它的输出响应。
data=$(curl -s --location --request GET "${HOST}/api/v1/envs/projects/${PROJECT_ID}?page=0&pageSize=25" --header "Accept: application/json" --header "Content-Type: application/json" --header "Authorization: Bearer "$token"" | jq -r '.data[]')
echo "$data"
{
"id": "8aa0809085f46e000185f4c28b7a0b52",
"createdBy": "8aa0808e82fd01fb0182fd0b05820007",
"createdDate": "2023-01-27T19:44:28.538+0000",
"modifiedBy": "8aa0808e82fd01fb0182fd0b05820007",
"modifiedDate": "2023-01-27T19:45:14.811+0000",
"version": null,
"inactive": false,
"projectId": "8aa0809085f46e000185f4c28b760b51",
"name": "Master",
"refId": "Master",
"description": null,
"baseUrl": "http://petstore.swagger.io/v1",
}
现在,我想动态更新data
变量中的baseUrl字段,并将更新完成的JSON对象存储在相同或不同的变量中,以便能够在不同的curl请求操作中使用它。
我们如何在bash脚本中做到这一点?
1条答案
按热度按时间z9smfwbn1#
您已经在使用
jq
提取API返回的部分数据。您可以扩展此jq
命令以动态修改baseURL
字段。以下代码将更新data
数组中第一个对象中的baseURL
,然后将其打印出来: