我有一个Bash脚本,我想在其中计算在循环文件时完成了多少操作。计数似乎在循环内起作用,但在此之后,变量似乎已重置。
nKeys=0
cat afile | while read -r line
do
#...do stuff
let nKeys=nKeys+1
# this will print 1,2,..., etc as expected
echo Done entry $nKeys
done
# PROBLEM: this always prints "... 0 keys"
echo Finished writing $destFile, $nKeys keys
上面的输出仅是以下几行的内容:
完成输入1
完成输入2
完成写/ blah,0键
我想要的输出是:
完成输入1
完成输入2
完成写/ blah,2键
我不太确定为什么循环后nKeys为0 :(我认为这是基本的东西,但是尽管我看了http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html,但还是能认出它,但该死的和其他资源。
手指交叉着别人可以看着它,然后走开,“嗯!你必须……”!
MMTTMM
慕的地10843