linux - 在 while 循环中计数

标签 linux bash

<分区>

我在目录上运行查找以对文件执行某些操作。我也想统计有多少文件受到了影响,但是循环中发生了一些奇怪的事情:

COUNTER=0

find . -type f -name "*.txt" | while read f
do 
  let COUNTER++
  echo Counter is $COUNTER # This shows COUNTER working...
done

echo Counter is $COUNTER # COUNTER is back to 0 at this point...

为什么 $COUNTER 会自行重置?

最佳答案

更改为:

COUNTER=0

while read -r entry
do 
  let COUNTER++
  echo Counter is $COUNTER # This shows COUNTER working...
done < <(find . -type f -name "*.txt")

关于linux - 在 while 循环中计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28090372/

相关文章:

linux - 使用 udev 规则在内核模块加载和卸载上创建和删除设备节点

Bash:语法错误:Ubuntu 中出现 "("意外问题

bash - 如何附加到 bash 循环内的现有字符串变量?

c - 10 个线程使用共享变量

linux - 强制原始数据包通过 iptables

具有非阻塞读取的 Bash 脚本

linux - 获取父级最后一个命令的退出状态

bash - 如何从字符串中删除空格?

linux - 将命令从 PBS 转换为 SLURM

python - 如何知道 .f90 文件安装在哪里?