包含数组的嵌套循环



我几乎有这个,但它似乎不想做正确的区域。该脚本应该循环遍历配置文件数组中每个配置文件的每个区域。例如,我想循环通过us-east-1的prod配置文件,它将输出到prod.csv,然后与preprod和dev相同。然后我希望它循环通过区域数组us-east-2的第二个索引,用于所有配置文件,等等。我的脚本似乎只填充了prod.csv文件,但只有几行。如有任何帮助,我将不胜感激。

#!/bin/bash
rm test/*.csv
declare -a profiles=("preprod" "dev" "prod")
declare -a regions=("us-east-1" "us-east-2" "us-west-1")
for x in "${regions[@]}" ; do
for i in "${profiles[@]}"; do
aws ec2 describe-instances --output text --query 'Reservations[*].Instances[*].[InstanceId, InstanceType, State.Name, LaunchTime, Placement.AvailabilityZone, Placement.Tenancy, PrivateIpAddress,[Tags[?Key==`Name`].Value] [1][0], [Tags[?Key==`servername`].Value] [0][0], [Tags[?Key==`stack`].Value] [0][0], [Tags[?Key==`CostCenter`].Value] [0][0], [Tags[?Key==`business-unit`].Value] [0][0], [Tags[?Key==`RI`].Value] [0][0], [Tags[?Key==`RI Expire`].Value] [0][0] ]' > test/"$i".csv --profile "$i" --region "$x"
done
done

感谢mark -fuso的帮助。所需要做的就是使用>>对文件追加写操作。

aws ec2 describe-instances --output text --query 'Reservations[*].Instances[*].[InstanceId, InstanceType, State.Name, LaunchTime, Placement.AvailabilityZone, Placement.Tenancy, PrivateIpAddress,[Tags[?Key==`Name`].Value] [1][0], [Tags[?Key==`servername`].Value] [0][0], [Tags[?Key==`stack`].Value] [0][0], [Tags[?Key==`CostCenter`].Value] [0][0], [Tags[?Key==`business-unit`].Value] [0][0], [Tags[?Key==`RI`].Value] [0][0], [Tags[?Key==`RI Expire`].Value] [0][0] ]' >> test/"$i".csv --profile "$i" --region "$x"
done
done

最新更新