获取子网 ID AWS

get subnet id AWS

我正在尝试获取特定 VPC 中的子网 ID 并将它们存储在变量中 所以我可以在 bash 脚本

中使用它们
aws ec2 describe-subnets --filter "Name=vpc-id,Values=VPCid" --region $REGION --query "Subnets[*].SubnetId" --output text

这给出了这样的东西

subnet-12345        subnet-78910
(END)

我想知道如何将它们存储到变量中。

我试过

SBnet=$(aws ec2 describe-subnets --filter "Name=vpc-id,Values=VPCid" --region $REGION --query "Subnets[*].SubnetId" --output text)

但后来我不知道我可以访问 array/list 创建的。

我试过

echo $(SBnet[0]) 

但不起作用

我在使用 zsh 的 MACos

您可以按如下方式进行(添加您的 VPC 和区域):

#!/bin/bash

SUBNET_IDS=$(aws ec2 describe-subnets --filter "Name=vpc-id,Values=vpc-1234" --query "Subnets[*].SubnetId" --output text)

for SUBNET_ID in $SUBNET_IDS;
do
    echo $SUBNET_ID
done

要将子网 ID 列表拆分为变量,您可以这样做:

#!/bin/bash

SUBNET_IDS=$(aws ec2 describe-subnets --filter "Name=vpc-id,Values=vpc-1234" --query "Subnets[*].SubnetId" --output text)

IFS=$'\t ' read -r -a subnet_ids <<< $SUBNET_IDS
echo "${subnet_ids[0]}"
echo "${subnet_ids[1]}"

并且各个子网 ID 将在 subnet_ids 数组中。