首页 > 解决方案 > bash中循环的总和值

问题描述

我需要计算所有区域中的 aws 实例总数,我编写了这个脚本:

#!/bin/bash
for region in $(aws ec2 describe-regions --query "Regions[*].[RegionName]" --output text); do
      aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --region $region --output text | wc -l
done

输出是这样的:

...
0
0
0
48
0
0
0
...

有没有办法获得这些值的总和?

标签: bashfor-loop

解决方案


尝试以下

#!/bin/bash
SUM=0
for region in $(aws ec2 describe-regions --query "Regions[*].[RegionName]" --output text); do
      I="$(aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --region $region --output text | wc -l)"
      let SUM=SUM+I
done

echo "$SUM"

推荐阅读