路径含空格时需用双引号包裹变量(如gradle_home="/applications/android studio.app/...")并确保export path="$gradle_home/bin:$path"中变量全程带引号,避免shell空格切分;禁用中文引号,修改后必须source ~/.zshrc生效。
mac 环境变量中路径含空格时,终端会把空格当作命令分隔符,导致 command not found 或解析失败。这不是路径本身错了,而是 shell 读取时提前截断了。关键不是“避免空格”,而是让 shell 正确识别整个路径为一个整体。
路径带空格时的正确写法
在 ~/.zshrc(或 ~/.bash_profile)中设置环境变量时,必须对空格做转义或包裹:
- 用反斜杠转义每个空格:
GRADLE_HOME=/Applications/Android\ Studio.app/Contents/gradle/gradle-8.7 - 或用双引号包裹整个路径(更推荐,尤其路径含多个空格或特殊字符):
GRADLE_HOME="/Applications/Android Studio.app/Contents/gradle/gradle-8.7" - PATH 拼接时也要保持一致性:
export PATH="$GRADLE_HOME/bin:$PATH"—— 注意这里$GRADLE_HOME必须用双引号包裹,否则变量展开后空格仍会被切开
常见出错点和修复方式
很多报错其实源于“看起来写了引号,实际没生效”:
- 复制粘贴时引号变成中文全角符号(“”),必须用英文半角双引号("")
- 在
export PATH=...中漏掉变量周围的引号,比如写成export PATH=$GRADLE_HOME/bin:$PATH,即使GRADLE_HOME定义时用了引号,展开后依然断裂 - 路径中含括号、星号等 shell 元字符,仅转义空格不够,统一用双引号最稳妥
- 改完文件后忘记执行
source ~/.zshrc,或开了新终端但没重新加载配置
验证是否真正生效
不要只看 echo $PATH 输出里有没有那段路径 —— 那只是字符串显示,不代表能用。要实测:
- 运行
which gradle或ls "$GRADLE_HOME/bin/gradle",确认路径可访问 - 直接执行命令,比如
gradle -v,看是否报错 - 如果仍失败,临时在终端里手动设置一遍带引号的变量,测试是否是配置文件问题:
GRADLE_HOME="/Applications/Android Studio.app/Contents/gradle/gradle-8.7"; export PATH="$GRADLE_HOME/bin:$PATH"
替代方案:绕过空格路径
如果反复出问题,可以不直接引用含空格的路径:
- 用
ln -s创建无空格软链接:sudo ln -s "/Applications/Android Studio.app" /usr/local/android-studio,然后基于/usr/local/android-studio配置 - 安装工具时优先选不带空格的路径,比如 Homebrew 安装的 Maven、Node 等天然规避该问题
- Android Studio 自带的 Gradle Wrapper(
./gradlew)不需要全局 PATH,项目内直接用,更可靠











