AWS EC2 CLI :在筛选条件中传递环境变量



我在运行适用于 AWS EC2 的 CLI 时尝试在筛选条件中传递环境变量。

例如,我想在此代码片段中为 vpc-id 和 cidr 块传递环境变量

$ aws ec2 describe-subnets --filter 'Name=vpc-id,Values=vpc-0ce822f7ef200f28k',"Name=cidr-block,Values=10.0.0.0/24" --query "Subnets[].SubnetId" --output=text --region=us-west-1
subnet-0ec2d15eda8f20484

我正在尝试这个:

aws ec2 describe-subnets --filter 'Name=vpc-id,Values=$EC2_VPC_ID','Name=cidr-block,Values=$EC2_CIDR_BLOCK' --query "Subnets[].SubnetId" --output=text --region=us-west-1

但它不起作用。它尝试了多种组合,例如 -

aws ec2 describe-subnets --filter "Name=vpc-id,Values='$EC2_VPC_ID'","Name=cidr-block,Values='$EC2_CIDR_BLOCK'" --query "Subnets[].SubnetId" --output=text --region=us-west-1
aws ec2 describe-subnets --filter "Name=vpc-id,Values=$EC2_VPC_ID","Name=cidr-block,Values=$EC2_CIDR_BLOCK" --query "Subnets[].SubnetId" --output=text --region=us-west-1
aws ec2 describe-subnets --filter 'Name=vpc-id,Values='$EC2_VPC_ID'','Name=cidr-block,Values='$EC2_CIDR_BLOCK'' --query "Subnets[].SubnetId" --output=text --region=us-west-1

它们都不起作用!!

顺便说一句,这以前是有效的,最近停止工作。

aws ec2 describe-subnets --filter 'Name=vpc-id,Values='$EC2_VPC_ID'','Name=cidr-block,Values='$EC2_CIDR_BLOCK'' --query "Subnets[].SubnetId" --output=text --region=us-west-1

这有效(在 Amazon Linux 上(:

aws ec2 describe-subnets --filter "Name=vpc-id,Values=$EC2_VPC_ID,Name=cidr-block,Values=$EC2_CIDR_BLOCK" --query "Subnets[].SubnetId" --output text

不能在 BASH 或 shell 脚本中以单引号传递变量。这是 Shell 脚本的基本 1-0-1。它需要在变量周围使用双引号。

例如:

a=2
echo $a
echo "$a"
echo '$a'

输出将是:

2
2
$a

相关内容

  • 没有找到相关文章

最新更新