cfi*_*coo -2 bash shell json amazon-web-services jq
我试图从aws结果解析json结果,但是当我使用$ ip时,我得到错误或null,当我使用特定的IP时它工作.当我在jq命令中使用tne变量时出错了
#!/bin/bash
aws ec2 describe-addresses --region eu-west-1 > 1.txt
ipList=( "52.16.121.238" "52.17.250.188" )
for ip in "${ipList[@]}";
do
echo $ip
cat 1.txt | jq '.Addresses | .[] | select (.PublicIp==$ip) | .InstanceId'
#echo $result
done
Run Code Online (Sandbox Code Playgroud)
请指教.
小智 5
你在jq程序周围使用单引号,这导致shell变量不被插值.此外,即使它是,你仍然需要在变量插值周围添加字符串引用,以使jq将其解释为字符串文字.由于对jq程序进行shell变量插值很难且容易出错,因此jq为此效果提供了命令行参数--arg,旨在将shell变量提升为jq变量.因此,您的jq调用将如下所示:
jq --arg ip "$ip" '.Addresses[] | select(.PublicIp == $ip) | .InstanceId'
| 归档时间: |
|
| 查看次数: |
3589 次 |
| 最近记录: |