如何解决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] 举报,一经查实,本站将立刻删除。