Bash:在“cat FILE while read LINE”循环中编辑的变量被放弃了,它们是<local>到循环吗?

时间:2018-01-16 03:07:09

标签: bash while-loop cat

我想要做的是使用“cat FILE | while read LINE”循环逐行读取文件,并使用Bash记录与某个规则匹配的行数。但是我发现变量似乎是循环的“本地”。所以我做了以下测试。

在txt文件中:

11 one
22 two
33 three

在test.sh shell脚本中:

#!/bin/bash
x=3;
echo "Begin: $x";
cat txt | while read LINE;
do
    ((x++));
    echo "$LINE $x";
done;
echo "End: $x";
read -p "a" a

输出结果:

Begin: 3
11 one 4
22 two 5
33 three 6
End: 3

变量x确实增加(4,5然后是6),但它在循环外保持不变(3)。 我试过“导出x”,但它不起作用。 有人能说出来吗?感谢。

0 个答案:

没有答案