У меня есть сценарий 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
Результатом вышеизложенного является только строки:
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 и другие ресурсы.
Скрестив пальцы, кто-то другой может посмотреть на него и уйти «ну да! Вы должны ...»!