我有五个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
数据。你可以用它来切片和过滤器和地图,并与同样方便的是变换结构化数据sed
,awk
,grep
确实为非结构化数据。
< curl command > | jq --raw-output '.AssetID'
并将其存储在变量中,请使用命令替换语法来运行命令并返回结果。
asset_ID=$( < curl command > | jq --raw-output '.AssetID' )
在curl
命令中,删除该-i
标志以仅输出JSON
没有标题信息的数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句