У меня есть Bash script, где я хочу подсчитать, сколько всего было сделано при переходе через файл. Счетчик, кажется, работает внутри цикла, но после него переменная кажется reset.
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
Вышеуказанный результат - это что-то одно: строки
Done entry 1 Done entry 2 Finished writing /blah, 0 keys
Выход, который я хочу:
Done entry 1 Done entry 2 Finished writing /blah, 2 keys
Я не совсем уверен, почему nKeys 0 после цикла:( Я предполагаю, что это что-то основное, но проклятое, если я могу это заметить, несмотря на просмотр http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-7.html и другие ресурсы.
Пальцы скрестились, кто-то другой может посмотреть на него и пойти "ну, а ты..."