Я пытаюсь сделать что-то очень простое, что заключается в вставке набора дат в массив. Поэтому я запускаю команду git, которая возвращает результат одной строки, из этого результата я получаю даты с помощью awk. После того, как я перебираю все даты и добавляю их в массив. В конце концов, массив все еще пуст, но если я напечатаю массив во время цикла, он, кажется, имеет данные внутри.Пустой массив после цикла while
Почему массив пуст после цикла?
git reflog --date=local <branch_name> |
awk '{ print $3 " " $4 " " $5 }' |
while read date; do a+=(`echo "$date"`); done; echo ${a[@]}
Я понимаю, что каждая команда после трубы выполняется в другом субоболочке, но в данном случае я думаю, что это не влияющий на конечный результат ...
Поскольку вы присваиваете переменной в субоболочке, так что переменная сфера является подоболочка и родитель не может видеть его. – drizzt