【问题标题】:MacOS export of env var is being escaped or misinterpreted on shellenv var 的 MacOS 导出在 shell 上被转义或误解
【发布时间】:2021-08-03 08:44:29
【问题描述】:

Mac OS 在这里。在终端上,我创建了以下.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"

【问题讨论】:

    标签: macos command-line terminal env-file


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 2021-12-20
      • 1970-01-01
      相关资源
      最近更新 更多