Перебор массивов bash, динамическая замена имени массива, возможно ли это?

У меня есть сценарий, который выполняет итерацию по массиву значений, что-то вроде этого (упрощено для целей этого вопроса):

COUNTRIES=( ENGLAND SCOTLAND WALES )

for i in ${COUNTRIES[@]}
do                  
    echo "Country is $i "
done

Мой вопрос в том, можно ли динамически подставлять массив? Например, я хочу иметь возможность передавать массив для повторения во время выполнения. Я пробовал следующее, но думаю, что мой синтаксис может быть неправильным

COUNTRIES=( ENGLAND SCOTLAND WALES )
ANIMALS=( COW SHEEP DOG )

loopOverSomething()
{
    for i in ${$1[@]}
    do                  
        echo "value is $i "
    done
}

loopOverSomething $ANIMALS

Я получаю строку 22: ${$2[@]}: неверная замена

5
задан Jimmy 17 May 2012 в 14:32
поделиться