Возвращение имени переменной из массива в скрипте оболочки - PullRequest
0 голосов
/ 19 марта 2020

Я хочу добавить значение как $ EC5 в мой новый список в сценарии оболочки. Однако в настоящее время он хранит значение 11 в массиве newlist.

EC2=0
EC3=0
EC4=0
EC5=11
return_codes=( $EC2 $EC3 $EC4 $EC5)
newlist=()

for i in "${return_codes[@]}";
do
    if [[ $i -ne 0 ]]
        then
            newlist+=($i)
    fi
done

Пожалуйста, помогите.

1 Ответ

2 голосов
/ 19 марта 2020

Вместо сохранения значения переменной вы можете сохранить ее имя и посмотреть его:

EC2=0
EC3=0
EC4=0
EC5=11
return_codes=( EC2 EC3 EC4 EC5)
newlist=()

for i in "${return_codes[@]}";
do
    if [[ ${!i} -ne 0 ]]
        then
            newlist+=($i)
    fi
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...