Как в bash создавать в цикле массивы?

У меня есть некий текст. Лог некоторых значений. Я разбиваю этот текст по элементам и кидаю в массив для удобства сравнения с показаниями из других источников. Хочу иметь возможность создать несколько массивов в цикле что бы не подбирать по времени, а просто вогнать все значений в разные массивы за некий период и сравнить с эталоном. Попробовал всунуть в имя массива переменную (число, которое можно в цикле нарастить и таким образом что бы создавался каждый раз ещё один массив) типа: MASS[0]=`что-то там`
вставить просто напросто переменную p=0 MASS$p[0]=`что-то там` нельзя. Вот вопрос. Как можно?
смотрю сколько подходящих строк пойдет в массивы; в while [];do цикле хочу создать столько массивов сколько строк высчитает скрипт.
  • Вопрос задан
  • 3247 просмотров
Пригласить эксперта
Ответы на вопрос 2
3vi1_0n3
@3vi1_0n3
Могу предложить вариант попроще. Не создавать несколько массивов, а просто воспользоваться арифметикой для вычисления индекса.
#!/bin/bash

for i in {1..5}
do
    for j in {1..5}
    do
        INDEX=$((i*1000+j))
        ARRAY[INDEX]=$j
    done
done
echo Full array:
echo ${ARRAY[*]}
echo First line:
for j in {1..5}
do
    INDEX=$((1000+j))
    echo ${ARRAY[INDEX]}
done

Будет разве что одно неудобство в таком случае - надо будет заранее знать максимальное количество элементов в "строке". В примере сдвиг индексов равен 1000
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы