我运行此命令,它有效:
aws elb describe-load-balancers --query 'LoadBalancerDescriptions[?VPCId==`vpc-#########`]|[].LoadBalancerName' --region us-east-2
如果我尝试使用environemnt变量,它将不起作用:
aws elb describe-load-balancers --query 'LoadBalancerDescriptions[?VPCId==`$VPC_ID`]|[].LoadBalancerName' --region us-east-2
我知道VPC_ID有效-echo $ VPC_ID返回正确的值
我没看到什么?
谢谢!!!!!
我也尝试了此命令,结果相同:
这很好用:
aws elb describe-load-balancers --output text --query 'LoadBalancerDescriptions[?Instances[?InstanceId==`i-0############`]].[LoadBalancerName]' --region us-east-2
这不返回任何内容:
aws elb describe-load-balancers --output text --query 'LoadBalancerDescriptions[?Instances[?InstanceId=="$InstanceID"]].[LoadBalancerName]' --region us-east-2
我知道环境变量$ InstanceID已填充且正确-我执行echo $ InstanceID并获得正确的ID输出。
答案 0 :(得分:1)
知道了!
环境变量必须放在方括号中-{}
这有效-
aws elb describe-load-balancers --output text --query "LoadBalancerDescriptions[?Instances[?InstanceId=='${InstanceID}']].LoadBalancerName" --region us-east-2
答案 1 :(得分:0)
我可以使用以下方法重现此内容:
export MY_VPC_ID=vpc-1234
echo 'LoadBalancerDescriptions[?VPCId==`$MY_VPC_ID`]|[].LoadBalancerName'
输出:
LoadBalancerDescriptions[?VPCId==`$MY_VPC_ID`]|[].LoadBalancerName
我认为这与bash如何解释引号有关,如另一篇文章中所示 Evaluating variables in a string
您可以尝试使用它吗?
echo "LoadBalancerDescriptions[?VPCId==\"$MY_VPC_ID\"]|[].LoadBalancerName"
输出:
LoadBalancerDescriptions[?VPCId=="vpc-1234"]|[].LoadBalancerName