За пределами вашего скрипта:
export SMTP_PASSWORD=mySMTPKey
export MICROSCANNER_TOKEN=myMicroscannerKey
Внутри вашего скрипта:
Как отдельные переменные:
#!/bin/bash
SMTP_PASSWORD=${SMTP_PASSWORD_KEY}
MICROSCANNER_TOKEN=${MICROSCANNER_TOKEN_KEY}
Как карта (доступно в Bash 4):
#!/bin/bash
declare -A MYMAP
MYMAP[SMTP_PASSWORD]=${SMTP_PASSWORD_KEY}
MYMAP[MICROSCANNER_TOKEN]=${MICROSCANNER_TOKEN_KEY}
Чтобы перебрать внешний ENV и добавить пары ключ / значение:
#!/bin/bash
declare -A MYMAP
while IFS='=' read -r -d '' n v; do
MYMAP[${n}]=${v}
done < <(env -0)
# display all variable key value pairs
for K in "${!MYMAP[@]}"; do
echo $K = ${MYMAP[$K]};
done
Учитывая ваш последний комментарий, не желая вводить все переменные ENV, вы можете сделать что-то вроде:
#!/bin/bash
envArray=( SMTP_PASSWORD MICROSCANNER_TOKEN )
declare -A MYMAP
for k in "${envArray[@]}"; do
MYMAP[$k]=${!k}
done
for K in "${!MYMAP[@]}"; do
echo $K = ${MYMAP[$K]};
done