Я пытаюсь подсчитать появление слова в файле, который содержит по одному слову в строке (использование egrep было запрещено). Мне удалось найти решение, однако я наткнулся на довольно странную вещь, и мне хотелось бы объяснить, почему так происходит.Shell - переменная теряет значение после цикла
Моя переменная "count" имеет значение 0 после цикла, но она получает приращение правильно во время цикла.
Вот мой код:
for var in "[email protected]"
do
count=0
cat $1 | while read line ; do
if [ $line = $var ]; then
count=$((count + 1))
echo "$var found $count times"
fi
done
echo $count
done
Мой вывод:
yes found 0 times
yes found 1 times
yes found 2 times
0 - This is from the echo $count, which I find it very odd to be zero, since it got incremented to 3 during the loop.