Amazon web services 任何人都可以解释为什么输出不同?

Amazon web services 任何人都可以解释为什么输出不同?,amazon-web-services,command-line-interface,Amazon Web Services,Command Line Interface,根据下面的输出,看起来只有区域1是数组,其他两个是字符串,为什么 $ ZONES0=$(aws ec2 describe-availability-zones --region ap-southeast-2 --query AvailabilityZones[*].ZoneId[] --output text) echo ${ZONES0[0]} apse2-az3 apse2-az1 apse2-az2 $ ZONES1=(`aws ec2 describe-availability-

根据下面的输出,看起来只有区域1是数组,其他两个是字符串,为什么

$ ZONES0=$(aws ec2 describe-availability-zones --region ap-southeast-2  --query AvailabilityZones[*].ZoneId[] --output text)

echo ${ZONES0[0]}
apse2-az3 apse2-az1 apse2-az2


$ ZONES1=(`aws ec2 describe-availability-zones --region ap-southeast-2    --query AvailabilityZones[*].ZoneId[] --output text`)

$echo ${ZONES1[0]}
$ apse2-az3

$ ZONES2=$(aws ec2 describe-availability-zones --region ap-south-1 | jq -r '.AvailabilityZones[].ZoneId')

$echo ${ZONES2[0]}
 aps1-az1 aps1-az3 aps1-az2

如果我跑

ZONES0=( $(aws ec2 describe-availability-zones --region ap-southeast-2  --query AvailabilityZones[*].ZoneId[] --output text) ). 
输出如下

$ echo $ZONES0
apse2-az3
$ echo $ZONES0[0]
apse2-az3[0]

区域1
是数组,因为在bash中,可以使用以下形式定义数组:

name=(value1 value2 … )
因此,表达式返回
apse2-az3 apse2-az1 apse2-az2
,它位于
(…)
中以声明数组

如果要对
区域0
执行相同操作,只需在复合赋值中放置:

ZONES0=( $(aws ec2 describe-availability-zones --region ap-southeast-2  --query AvailabilityZones[*].ZoneId[] --output text) )

ZONES1
是数组,因为在bash中,可以使用以下形式的

name=(value1 value2 … )
因此,表达式返回
apse2-az3 apse2-az1 apse2-az2
,它位于
(…)
中以声明数组

如果要对
区域0
执行相同操作,只需在复合赋值中放置:

ZONES0=( $(aws ec2 describe-availability-zones --region ap-southeast-2  --query AvailabilityZones[*].ZoneId[] --output text) )

谢谢你的回答。为了清楚起见,我附上了一份screenshot@tiger06你好标记s的反勾号类似于
$(…)
。你可以阅读更多关于这个的内容。谢谢你的回答。为了清楚起见,我附上了一张截图。在分区1中,括号中有`。它的目的是什么?@tiger06它的。@tiger06顺便问一下。如果我的回答有帮助,我们将不胜感激。谢谢你的回答。为了清楚起见,我附上了一份screenshot@tiger06你好标记s的反勾号类似于
$(…)
。你可以阅读更多关于这个的内容。谢谢你的回答。为了清楚起见,我附上了一张截图。在分区1中,括号中有`。它的目的是什么?@tiger06它的。@tiger06顺便问一下。如果我的回答有帮助,我们将不胜感激。