Amazon web services 任何人都可以解释为什么输出不同?
根据下面的输出,看起来只有区域1是数组,其他两个是字符串,为什么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-
$ 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顺便问一下。如果我的回答有帮助,我们将不胜感激。