Есть несколько массивов:
[code=Bash]
mas1=(1 2 3 4 5)
mas2=(6 7 8 9 0)
mas3=(a s d f g)
[code]
Не получается перебрать массивы меняя их коэффициент и скопировать один массив в другой.
[br]
Делаю это вот так:
[code=Bash]
mas1=(1 2 3 4 5)
mas2=(6 7 8 9 0)
mas3=(a s d f g)
declare -a MASSIV
per="mas"
for(( i=1 ; i<4 ; i++ ))
do
zk=$per$i
eval MASSIV=("${zk[@]}")
done
[code]
Перебрал уже много вариантов:
[code=Bash]
eval MASSIV=("${$zk[@]}")
eval MASSIV=("${\$zk[@]}")
eval MASSIV=("${'$'zk[@]}")
eval MASSIV=( ${"$zk"[@]} )
и т. д.
[code]
но выдаёт ошибку или копируется только первый элемент массива.
eval и массивы
Модератор: SLEDopit
Re: eval и массивы
Shell
#!/bin/bash
mas1=(1 2 3 4 5)
mas2=(6 7 8 9 0)
mas3=(a s d f g)
declare -a massive
for(( i=1 ; i<4 ; i++ ))
do
# option 1
eval pz="$"{mas${i}[@]}
massive+=( ${pz[@]} )
# option 2
#pz=mas$i[@]
#massive+=( ${!pz} )
done
echo ${massive[@]}
$ ./array.sh
1 2 3 4 5 6 7 8 9 0 a s d f g
ps. теме вроде место в Погружении - Работа в командной строке