【问题标题】:How to implement a counter in for loop for a bash script [duplicate]如何在 bash 脚本的 for 循环中实现计数器 [重复]
【发布时间】:2021-11-23 22:09:12
【问题描述】:

我在任何地方都找不到我的答案。我的代码中的计数器不起作用。为什么和做什么?

count=0;
for file1 in folder1;
do
    cat $file1 | while read line
    do
        echo $line;
        ((count++));
    done
done
echo "Count : ${count}";

【问题讨论】:

  • 请添加合适的 shebang (#!/bin/bash),然后将您的脚本粘贴到 shellcheck.net 并尝试实施那里提出的建议。
  • @Cyrus 确实,这个网站很有用。谢谢分享。

标签: bash for-loop counter


【解决方案1】:

使用管道时,命令在子 shell 中执行。子 shell 中的更改不会传播到父 shell,因此计数器永远不会增加。

这里不需要管道。改用重定向:

    while read line
    do
        echo $line;
        ((count++));
    done < "$file1"

【讨论】:

    猜你喜欢
    • 2018-05-20
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 2010-11-14
    • 2019-04-09
    • 1970-01-01
    相关资源
    最近更新 更多