LINUX.ORG.RU

История изменений

Исправление v4567, (текущая версия) :

Он массивы перебирает, а их 3.

совершенно точно.

По поводу eval-а я вроде разобрался, просто потерялся в скобках и кавычках.
Если без eval, то в MASSIV будет залетать: («${mas1[@]}») потом («${mas2[@]}») и («${mas3[@]}»).
Если с eval, то («${mas1[@]}») будет выполняться как команда, то есть будет поэлементная запись одних элементов массива mas в массив MASSIV, как раз то что нужно.
Получается так, что:
двойные кавычки - нужны что бы пробелы между буквами убрать.
({}) - нужны для записи одного массива в другой.
Если без eval и внутренних одинарных то не подставляются переменные $per$i, если без внешних то пишет bad substitution.

Исходная версия v4567, :

Он массивы перебирает, а их 3.

совершенно точно.
По поводу eval-а я вроде разобрался, просто потерялся в скобках и кавычках.
Если без eval, то в MASSIV будет залетать: («${mas1[@]}») потом («${mas2[@]}») и («${mas3[@]}»).
Если с eval, то («${mas1[@]}») будет выполняться как команда, то есть будет поэлементная запись одних элементов массива mas в массив MASSIV, как раз то что нужно.
Получается так, что:
двойные кавычки - нужны что бы пробелы между буквами убрать.
({}) - нужны для записи одного массива в другой.
Если без eval и внутренних одинарных то не подставляются переменные $per$i, если без внешних то пишет bad substitution.