【问题标题】:Assist with bash loop using files使用文件协助 bash 循环
【发布时间】:2023-02-13 16:43:53
【问题描述】:

我需要一些关于我正在使用 AWS CLI 的脚本的帮助。我的目标是根据标签获取实例列表。到目前为止,我有什么想要的。但是,我需要一些帮助,不仅可以通过我的初始文件进行交互,还可以通过另一个文件进行交互。

这是我尝试过的方法,它不是很漂亮,但它为我完成了工作。我需要一些帮助来完成它:

FILENAME="aws_regions.txt"
AWSREGIONS=$(cat $FILENAME)

for region in $AWSREGIONS
do
    echo "\nListing hosts in region:'$region'..."
    aws ec2 describe-instances --filters "Name=tag:name,Values=test" --output text --query 'Reservations[].Instances[].[InstanceId, PrivateIpAddress, Tags[?Key==`Name`].Value[] | [0]]' --region $region --profile default

done

我想通过我保存在文本文件中的配置文件列表来运行它。我该怎么做?我不确定如何用文件中的列表替换 --profile default

【问题讨论】:

  • 也许:while read region; do while read profile; do echo $region:$profile; done < profiles.txt; done < aws_regions.txt。 (用适当的命令替换回声)

标签: bash amazon-web-services aws-cli


【解决方案1】:

您可以按如下方式修改脚本以循环访问存储在另一个文件中的配置文件:

FILENAME="aws_regions.txt"
AWSREGIONS=$(cat $FILENAME)
PROFILE_FILE="aws_profiles.txt"
AWSPROFILES=$(cat $PROFILE_FILE)

for profile in $AWSPROFILES
do
  for region in $AWSREGIONS
  do
    echo "
Listing hosts in region:'$region' with profile '$profile'..."
    aws ec2 describe-instances --filters "Name=tag:name,Values=test" --output text --query 'Reservations[].Instances[].[InstanceId, PrivateIpAddress, Tags[?Key==Name].Value[] | [0]]' --region $region --profile $profile
  done
done

这样,脚本将循环遍历存储在相应文本文件中的区域和配置文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2023-03-08
    • 2019-08-26
    • 1970-01-01
    • 2015-04-05
    • 2019-10-24
    • 2012-02-26
    相关资源
    最近更新 更多