Вывести значение массива вместо его имени - PullRequest
1 голос
/ 26 мая 2020
#! /bin/bash
array_1=(1 3 5)
array_2=(7 9 3)
array_3=(0 -1 3)    

for i in {1..3}; do
        array=array_$i
        echo "${array[@]}"
done

Я печатаю «массив_1», «массив_2» и «массив_3» вместо его значения.

1 Ответ

3 голосов
/ 26 мая 2020

Сохраните полное имя переменной плюс [@] в виде строки, затем получите элементы с ${!var} косвенным расширением . Это забавно, но размещение [@] в строке, а не в раскрытии - это путь к go.

#!/bin/bash
array_1=(1 3 5)
array_2=(7 9 3)
array_3=(0 -1 3)    

for i in {1..3}; do
    array="array_$i[@]"
    echo "${!array}"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...