Подстановка параметров оболочки на sh - PullRequest
0 голосов
/ 25 марта 2020

В bash следующая команда работает там, где используется подстановка параметров

$ VALUE_AUS=20m; COUNTRY=AUS; PARAM=VALUE_$COUNTRY; echo ${!PARAM}
20m

Однако в контейнере Alpine с sh эта же команда не выполняется

# VALUE_AUS=20m; COUNTRY=AUS; PARAM=VALUE_$COUNTRY; echo ${!PARAM}
/bin/sh: syntax error: bad substitution

Что будет правильным синтаксис для достижения того же результата, используя / bin / sh?

1 Ответ

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

Косвенные переменные имеют расширение bash.

Если Alpine не может запустить bash, вам необходимо использовать eval для эмуляции этого.

# VALUE_AUS=20m; COUNTRY=AUS; PARAM=VALUE_$COUNTRY; eval "echo \"\$${PARAM}\""
...