不那么无用的“是”bash命令:如何在每个循环中确认一个命令

时间:2009-12-21 16:49:31

标签: bash

我写了一个循环来解压缩目录中的所有zip文件。

for f in *zip
do
    unzip $f
done

但是,我必须在每一步确认覆盖:

replace file123.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A

如何重写循环以在每个周期发送相同的命令?

4 个答案:

答案 0 :(得分:33)

太棒了,也许 的少数情况之一仍然有用

尝试:

for f in *zip
do
    yes | unzip $f
done

每个命令都会打印“y”。

或者,您可以指定yes提供的字符串,例如:

for f in *zip
do
    yes A | unzip $f
done

答案 1 :(得分:9)

unzip -o $f

根据文档

答案 2 :(得分:3)

尝试使用

unzip -o
循环中的

答案 3 :(得分:0)

for f in *zip
do
   echo "yes" | unzip $f
done