在bash中解析并存储curl命令的json输出

木丸

我有五个cURL陈述,它们自己都能很好地工作,并且正在尝试将它们放到bash脚本中。每个cURL语句都依赖于从cuRL在其之前执行语句生成的变量我正在尝试找出最明智的方法。这是第一个cURL语句;

curl -i -k -b sessionid -X POST https://base/resource -H "Content-Type: application/json" -H "Authorization: Authorization: PS-Auth key=keyString; runas=userName; pwd=[password]" -d "{\"AssetName\":\"apiTest\",\"DnsName\":\"apiTest\",\"DomainName\":\"domainNameString\",\"IPAddress\":\"ipAddressHere\",\"AssetType\":\"apiTest\"}"

这样可以很好地工作,并产生输出。

{"WorkgroupID":1,"AssetID":57,"AssetName":"apiTest","AssetType":"apiTest","DnsName":"apiTest","DomainName":"domainNameString","IPAddress":"ipAddressHere","MacAddress":null,"OperatingSystem":null,"LastUpdateDate":"2017-10-30T15:18:05.67-07:00"}

但是,在下cURL一条语句中,我需要使用from整数AssetID才能执行它。简而言之,如何获取AssetID值并将其存储到下一个语句中要使用的变量中?总共,我将使用5条cURL语句,它们依赖于前面语句中生成的值来执行。关于如何欣赏的任何见解。

伊尼安

下载并安装jq这就像sed对于JSON数据。你可以用它来切片和过滤器和地图,并与同样方便的是变换结构化数据sedawkgrep确实为非结构化数据。

< curl command > | jq --raw-output '.AssetID'

并将其存储在变量中,请使用命令替换语法来运行命令并返回结果。

asset_ID=$( < curl command > | jq --raw-output '.AssetID' )

curl命令中,删除该-i标志以仅输出JSON没有标题信息数据。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章