如何计算命令运行的次数并添加条件?

如何计算命令运行的次数并添加条件?

基本上,我需要控制将文件上传到 AWS S3 的速度——我有一个包含数万个文件的文件夹,这是我现在所做的:

for f in *; do aws s3 cp $f s3://my-bucket; done;

我想要做的就像这样的伪代码:

for f in *; 
   cnt=0
   do aws s3 cp $f s3://my-bucket
   if cnt % 1000 == 0
       sleep 5 min
done; 

抱歉,我把 python 和 shell 语法混在一起了,但我希望我表达清楚了我的想法。请帮忙。谢谢!

答案1

这也许能实现你想要的效果。

#!/usr/bin/env bash

counter=1

for f in *; do
  echo aws s3 cp "$f" s3://my-bucket
  ((counter++ % 10 == 0)) && echo && sleep 5
done
  • 这只是应该/可以执行的操作的一次演练。

  • 如果您认为输出没有问题,请删除echo前面的aws和。&& echo

相关内容