如何设置包含“!”的环境变量在赫罗库?

How to set environment variables containing "!" in 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 config:add

但是感叹号也去掉了。

我发现您可以在项目设置中编辑 Heroku 配置变量。 https://dashboard.heroku.com/

我还是想知道'!'是怎么来的如果有人偶然发现这个 post 并且知道答案,将不会保存 :)

许多 shell,including zsh and bash,将感叹号解释为历史扩展字符。

在这两个 shell 中,您应该能够对值进行单引号 (') 以使其正常工作:

heroku config:set EMAIL_HOST_PASSWORD='mypassword!'

双引号 (") 无效。

如该邮件列表 post 所述,如果您想在 zsh 中完全禁用此功能,您可以使用

unsetopt banghistory

并在 bash you can do

set +H

set +histexpand