【发布时间】:2020-04-09 17:40:38
【问题描述】:
我使用 bash 创建了函数来检索 EC2 SnapshotIds 并将列表输出到文本文件。我使用了一个 for 循环:
for i in {0..20} ; do
aws ec2 describe-snapshots \
--filters Name=description,Values="*TestVolume$i*" \
--query "reverse(sort_by(Snapshots, &StartTime))[0].SnapshotId" \
>> GetSnapId
done
上面输出内容,但输出文件有一些空白,因为 {0..20} 某些行是空的。如何循环输出唯一的 SnapshotId,以便在检索到所有唯一的 SnapshotId 时停止循环?使用while循环更好吗?你有什么建议?
【问题讨论】:
-
脚本运行 20 次 ({0..20}。这里是示例输出:"snap-lkjjsd813beaca2asdf" "snap-12346b9301b0eabsd" null null null null null null null null null null null null null null “snap-1111c2a279f0deder”。我希望在没有更多唯一快照 ID 时停止循环。我该怎么做?
-
嗨 - 我已经在上面添加了整个脚本。如前所述,如何让脚本仅在某些行上打印唯一的快照 ID 而不是 0。理想情况下,我希望查看卷的最新 SnapshotId。
标签: bash for-loop amazon-ec2