我想要做的是使用“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”,但它不起作用。 有人能说出来吗?感谢。