当我将“\”查询中断时,如何将jq字符串分成几行,这是用于较长的行。
vpcExists=$(aws ec2 describe-vpcs --profile $profile | jq -r --arg vpcId "$vpcId" '.[][] | \
select(.VpcId == $vpcId) \
| .["State"]' \
)
最佳答案
jq
可以使用文字换行符,因此只需在任意位置添加换行符,而不必尝试转义它们:
vpcExists=$(aws ec2 describe-vpcs --profile $profile |
jq -r --arg vpcId "$vpcId" '
.[][]
| select(.VpcId == $vpcId)
| .["State"]'
)
这是MCVE:
jq -r --arg vpcId "someId" '
.[][]
| select(.VpcId == $vpcId)
| .["State"]' << 'EOF'
{ "Vpcs": [ {
"VpcId": "someId",
"InstanceTenancy": "default",
"State": "available",
"IsDefault": false
} ] }
EOF
关于json - 将jq查询字符串分成几行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48712545/