微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

env var 的 MacOS 导出在 shell 上被转义或误解

如何解决env var 的 MacOS 导出在 shell 上被转义或误解

这里是 Mac 操作系统。在终端上,我创建了以下 .env 文件

export FIZZ=foo
export BUZZ="$2a$10$Hk1PB6Eyf5Pu71JLfH6fCexjzOIwkctk.pQJ4oYWP.m4qdRKRQlyO"

然后我运行 source .env && echo $FIZZ 并看到:

foo

到目前为止,一切都很好。但是现在我运行 echo $BUZZ 并且输出是:

a0.pQJ4oYWP.m4qdRKRQlyO

我明确地将 BUZZ 的值放在双引号 ("$2a$10$Hk1PB6Eyf5Pu71JLfH6fCexjzOIwkctk.pQJ4oYWP.m4qdRKRQlyO") 中,为什么它输出"a0.pQJ4oYWP.m4qdRKRQlyO"

解决方法

我能够重现你所看到的。我很确定您在 bash 所做的环境变量替换方面遇到了问题。 (由“$”字符触发。)我知道有两种方法可以“修复”它。

一种是用前面的反斜杠转义“$”字符。 export BUZZ=\$2a\$10\$Hk1PB6Eyf5Pu71JLfH6fCexjzOIwkctk.pQJ4oYWP.m4qdRKRQlyO

另一个是改变你引用字符串的方式。使用单引号代替双引号... export BUZZ='$2a$10$Hk1PB6Eyf5Pu71JLfH6fCexjzOIwkctk.pQJ4oYWP.m4qdRKRQlyO'

双引号允许环境变量替换继续,单引号防止发生这种情况。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。