macOS Sierra下Bash环境使用环境变量执行cd命令报错
解决macOS Bash中使用带空格的环境变量执行cd命令的错误
首先咱们先揪出问题根源:你设置AVGPATH时的写法踩了Bash的小坑——在双引号里多加了不必要的\转义符,导致变量里存的路径带着多余的反斜杠,可真实路径里根本没有这些符号,系统自然找不到对应的目录。另外你提到的错误里写的是cd $PATH,这里要注意$PATH是系统自带的环境变量(用来存可执行文件的搜索路径),和你自己定义的AVGPATH完全不是一回事,应该是输入时的笔误~
正确的环境变量设置方式
你有两种靠谱的方式来定义带空格的路径变量:
- 方式一:用双引号包裹完整路径(推荐)
双引号会自动保留路径里空格的字面意义,不需要额外转义:AVGPATH="/Users/mdelp/Google Drive/Cloud Downloads/Avantgardist/ADGM Reporting/dev" - 方式二:不用双引号,给每个空格加反斜杠转义
如果不想用双引号,就得给每个空格前加\,让Bash把空格当成路径的一部分:AVGPATH=/Users/mdelp/Google\ Drive/Cloud\ Downloads/Avantgardist/ADGM\ Reporting/dev
验证变量是否正确
设置完变量后,一定要用带双引号的echo命令验证:
echo "$AVGPATH"
正确的输出应该是不带任何\的路径:
/Users/mdelp/Google Drive/Cloud Downloads/Avantgardist/ADGM Reporting/dev
执行cd命令
最后执行cd的时候,也别忘了给变量加上双引号(避免空格被Bash解析成参数分隔符):
cd "$AVGPATH"
这样就能顺利进入目标目录啦~
内容的提问来源于stack exchange,提问作者mapkyc3000
相关产品推荐
相关产品推荐

