Как использовать переменные окружения в Heroku?

Я застрял на этом уже целую вечность и не могу найти решение. Я установил переменные окружения в файле ~/.zshrc и правильно экспортировал их.

Теперь, когда я пробую эти команды для настройки heroku, они работают для адреса электронной почты, но когда я ввожу их для пароля, они удаляют '!' в конце моего пароля.

вход: heroku config:set EMAIL_HOST_USER="myemail@gmail.com" heroku config:set EMAIL_HOST_PASSWORD="mypassword!"

вывод: Setting EMAIL_HOST_PASSWORD and restarting ⬢ <app-name>... done, v45 EMAIL_HOST_PASSWORD: mypassword

Может ли кто-нибудь объяснить, почему это может происходить?

Я также пробовал,

heroku connfig:add

...., но восклицательный знак также удален..

Я обнаружил, что вы можете редактировать переменные конфигурации Heroku в настройках вашего проекта. https://dashboard.heroku.com/

Я все еще хотел бы знать, почему '!' не сохраняется, если кто-нибудь наткнется на это сообщение и знает ответ :)

Многие оболочки, включая zsh и bash, интерпретируют восклицательные знаки как символы расширения истории.

В обоих этих оболочках вы должны быть в состоянии заключить в одинарную кавычку (') значение, чтобы заставить его работать:

heroku config:set EMAIL_HOST_PASSWORD='mypassword!'

Двойные кавычки (") не работают.

Как отмечено в том сообщении списка рассылки, если вы хотите полностью отключить эту функцию в zsh, вы можете сделать это с помощью

unsetopt banghistory

А в bash вы можете сделать

set +H

или

set +histexpand
Вернуться на верх