Как я могу установить переменные среды из Heroku для одной команды bash, а не для всего сеанса оболочки? - PullRequest
0 голосов
/ 29 апреля 2020

Я могу установить переменную среды, которая доступна только для этой указанной команды c и впоследствии не будет доступна в этом сеансе оболочки. (Я уверен, что моя терминология здесь не точна - пожалуйста, исправьте меня.)

$ FOO=hello ruby -e 'puts ENV["FOO"]'
hello
$ echo $FOO
(no output)

Я также могу получить переменные окружения от Heroku:

$ heroku config:get --shell FOO BAR
FOO=hello
BAR=goodbye

Теперь, как я могу объединить эти методы - получить переменные среды из Heroku и сделать их доступными только для запуска одной команды?

Это работает, но $ FOO остается доступным, а это не то, что мне нужно:

export `heroku config:get --shell FOO BAR`
echo $FOO

Так чего я хочу добиться, так это:

$ some_shell_magic(`heroku config:get …`) ruby -e 'puts ENV["FOO"]'
hello

Любые идеи?

Основной сценарий использования - возможность запуска определенных команд с компьютера разработчика, используя значения производственной конфигурации, но не оставляя эти значения рядом, потому что они могут случайно быть использованы другой командой позже.

1 Ответ

1 голос
/ 29 апреля 2020

Исходя из того, что вы дали в качестве команды heroku, это должно достичь того, что вы хотели:

env $(heroku config:get …) ruby -e 'puts ENV["FOO"]'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...