Bash读取用户y/n应答不起作用(在循环读取查找输出时读取命令)

sem*_*ius 5 linux bash

我这里有问题.好像我的Bash脚本忽略了do和之间的所有内容done.不知道为什么,也许你会看到问题.提前致谢.

katalogas=$1
find $katalogas -type f -mtime +3 | while read $failai
do
read -p "Run command $foo? [yn]" answer
if [[ $answer = y ]] ; then
  rm $failai
fi
done
Run Code Online (Sandbox Code Playgroud)

Cyr*_*rus 7

尝试更换

read -p "Run command $foo? [yn]" answer
Run Code Online (Sandbox Code Playgroud)

通过

read -p "Run command $foo? [yn]" answer </dev/tty
Run Code Online (Sandbox Code Playgroud)

避免从标准输入读取.

Will的建议更新:

katalogas=$1
read -p "Run command $foo? [yn]" answer
if [[ $answer = y ]] ; then
  find "$katalogas" -type f -mtime +3 | while read failai
  do
    rm "$failai"
  done
fi
Run Code Online (Sandbox Code Playgroud)