невозможно извлечь переменную среды из значений массива в bash

#bash #shell

#bash #оболочка

Вопрос:

Я работаю над случаем, когда мне нужно извлечь переменную среды и передать ее функции в скрипте bash.

 #!/usr/bin/env bash

algorithm_settings=(env1 env2 env3 env4)

cnt=${#algorithm_settings[@]}
for ((i=0;i<cnt;i  )); do
   printf '%sn' "${algorithm_settings[i]}"
done
 

Это выводит:

 env1
env2
env3
env4
 

Я установил значение env1 как export env1=1.0.1

Я получаю значение env1 с помощью команды printenv env1

Как мне сохранить это значение (1.0.1) в переменной?

Комментарии:

1. variable="${!algorithm_settings[0]}" ?

2. Я предлагаю: algorithm_settings=("$env1" "$env2" "$env3" "$env4")

3. algorithm_settings в моем случае массив @Cyrus используется в нескольких местах. Я использую ее как пару ключ: значение, где ключ соответствует имени переменной среды, а значение — значению, хранящемуся в этой переменной среды.