Я проверяю, установлены ли переменные среды.Как передать переменную в расширение параметра?
Это дает мне именно то, что я хочу в единственном числе:
: ${API_KEY:?`echo "Need to set API_KEY"`}
Однако, когда я извлечь функцию для цикла по набору переменных, вещи не работают, как я ожидал.
function check_env_for {
: ${$1:?`echo "Need to set $1 non-empty"`}
}
check_env_for API_KEY
брейки, возвращающие:
-bash: ${$1:?`echo "Need to set $1 non-empty"`}: bad substitution
Хотя решение оценили то, что ядро оболочки основы я, вероятно, не хватает?
Это не отражает ничего, независимо от того, существует ли параметр как переменная. – Matthew
Не используйте 'eval' для повторного реализации расширения косвенных параметров. – chepner
«eval» необходим для получения значения переменной ENV в этом контексте. Это то, за что «eval». – Donovan