You need to enable JavaScript to run this app. MacOS终端source .env文件时带$符号的环境变量值转义异常问题
优惠活动
大模型
产品
解决方案
定价
更多

MacOS终端source .env文件时带$符号的环境变量值转义异常问题

问题原因

你遇到的解析异常和双引号的shell解析规则直接相关:

  • shell环境中,双引号属于弱引用,会自动解析内部以$开头的变量、位置参数、算术表达式等特殊符号,不会将$作为普通字符处理。
  • 你的BUZZ赋值内容中$2、$1、$Hk1PB6Eyf5Pu71JLfH6fCexjzOIwkctk都会被shell识别为待解析的变量/位置参数:
    1. $2是shell的第2位位置参数,你执行source命令时没有传入额外参数,$2取值为空,因此$2a解析结果为a
    2. $1是shell的第1位位置参数,无传参时取值为空,因此$10解析结果为0
    3. $Hk1PB6Eyf5Pu71JLfH6fCexjzOIwkctk是未定义的自定义变量,默认取值为空
  • 三部分解析结果拼接后就得到了你看到的a0.pQJ4oYWP.m4qdRKRQlyO输出。
解决方案

有两种方式可以保留原始值:

  1. 使用单引号包裹取值:单引号属于强引用,不会解析内部任何特殊字符,直接按字面量处理
export BUZZ='$2a$10$Hk1PB6Eyf5Pu71JLfH6fCexjzOIwkctk.pQJ4oYWP.m4qdRKRQlyO'
  1. 双引号内对所有$添加转义符\,强制将$识别为普通字符
export BUZZ="\$2a\$10\$Hk1PB6Eyf5Pu71JLfH6fCexjzOIwkctk.pQJ4oYWP.m4qdRKRQlyO"

修改后重新执行source .env即可读取到正确的BUZZ值。

内容的提问来源于stack exchange,提问作者hotmeatballsoup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 18:15:07