当我将“\”查询中断时,如何将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/

10-10 12:57