首页 > 解决方案 > 请求输入 bash 脚本循环

问题描述

我正在尝试针对图片运行 jpegoptim,并且在循环中的某个时刻……假设 200 次迭代后,我得到“stdin”,这需要输入才能走得更远。

有没有办法强制输入?

#!/bin/bash
for i in `find . -name "*.jpg" -type f`; do
  jpegoptim "$i" >> jpg.log; done
done

标签: bashjpegoptim

解决方案


您可以使用计数器,然后read在计数器达到 200 时要求用户输入

#!/bin/bash

count=0
for i in `find . -name "*.jpg" -type f`; do
    jpegoptim "$i" >> jpg.log
    [[ $((count++)) == 200 ]] && read -rp "Continue? [y/n] " resume
    [[ "$resume" == 'n' ]] && break
done

推荐阅读