>[оверквотинг удален]
> Если меняю строчку for на следующие
> cat $file |
> while read line; do
> где $file - имя файла со значениями в виде
> 3
> 5
> 8
> то в результате массив nums по выходу из цикла остается нулевым.
> Не могу понять в чем различие. Внутри цикла массив изменяется как положено.
> $BASH_VERSION: 3.2.48(1)-release Вы наступили на старые проверенные грабли. :-)
Дело в том, что пользуясь конвейером, вы запускаете цикл в отдельном
экземпляре bash и когда цикл отрабатывает, то этот самый отдельный экземпляр
закрывается, унося в небытие все наработанные в нем данные. Попробуйте вместо
конвейера cat | while использовать перенаправление:
while read line; do
. . .
done < $file