Я хочу написать скрипт для ссылки на несколько массивов из другого массива, который содержит имена переменных этих массивов.
Вот мой код до сих пор:
#!/bin/bash
array1=('array1string1' 'array1string2')
array2=('array2string1' 'array2string2')
array_names=('array1' 'array2')
for a in ${array_names[@]}
do
for b in ${a[@]}
do
echo $b
done
done
Я хотел бы, чтобы выходные данные сканировали оба массива (из внешнего цикла for) и печатали соответствующие строки во внутреннем цикле for, который вызывает echo. Мой текущий вывод просто показывает мне:
array1
array2
Буду благодарен за любые указания по этому поводу. Спасибо!
${a[@]}
на ${!a}
то, что вы хотите (я думаю).
${!a[@]}
дает длину массива a
.
${!a}
просто дает мне первые элементы.
for b in "${array1[@]}" "${array2[@]}"; do ...; done
?