BASH — как записать значения переменной (в цикле) в разные элементы массива?
#!/bin/bash
cat /user/test | while read line
do
case $line in
number?of?seconds* )
MASS=(`echo $line | grep -o '[0-9]\.[0-9][0-9][0-9]'`)
echo ${MASS[0]}
esac
done
В цикле вытягиваю из текста нужные строки (по шаблону) и из этих строк мне необходимо взять числа для дальнейшей обработки. Решил внести числа в массив, чтобы потом обращаться к элементам массива.
Строки находит. Числа выводит. НО всё пишет в первый элемент массива. Как будто в одну переменную загоняю. Как заставить bash писать каждое значение в новый элемент массива?
Ну да, вы же в каждой итерации массив пересоздаёте.
Может сделать так?:
#!/bin/bash
declare -a MASS
cat /user/test | while read line
do
case $line in
number?of?seconds* )
MASS[${#MASS[@]}]=`echo $line | grep -o '[0-9]\.[0-9][0-9][0-9]'`
echo ${MASS[-1]}
;;
esac
done