cd $PATH:没有这样的文件或目录。

3

我正在macOS(Sierra)上运行bash。我正在设置以下$AVGPATH环境变量:

mpdelps-MacBook-Pro:~ mdelp$ pwd
/Users/mdelp
mpdelps-MacBook-Pro:~ mdelp$ AVGPATH="/Users/mdelp/Google\ Drive/Cloud\ Downloads/Avantgardist/ADGM\ Reporting/dev"
mpdelps-MacBook-Pro:~ mdelp$ echo $AVGPATH
/Users/mdelp/Google\ Drive/Cloud\ Downloads/Avantgardist/ADGM\ Reporting/dev
mpdelps-MacBook-Pro:dev mdelp$

现在,当我尝试使用该变量运行一个简单的“cd”命令时,终端会显示以下错误:
mpdelps-MacBook-Pro:~ mdelp$ cd $AVGPATH
-bash: cd: /Users/mdelp/Google\: No such file or directory
mpdelps-MacBook-Pro:dev mdelp$

然而,当我仅仅复制并粘贴 $AVGPATH 变量的值时,命令便能够正常执行:

mpdelps-MacBook-Pro:~ mdelp$ cd /Users/mdelp/Google\ Drive/Cloud\ Downloads/Avantgardist/ADGM\ Reporting/dev
mpdelps-MacBook-Pro:dev mdelp$ pwd
/Users/mdelp/Google Drive/Cloud Downloads/Avantgardist/ADGM Reporting/dev
mpdelps-MacBook-Pro:dev mdelp$

我在这里考虑了很久。能否有人解释一下shell如何将$AVGPATH变量的值呈现给'cd'命令?
谢谢!

3
进入“$AVGPATH”目录。 - Inian
1
你还对所有空格进行了双重转义。使用引号(AVGPATH="/Users/mdelp/Google Drive/...") 或者 反斜杠 (AVGPATH=/Users/mdelp/Google\ Drive/...),但不要同时使用两种方式。 - chepner
1个回答

1
请注意您的路径中有三个空格 \ Drive\ Downloads/\ Reporting/。为避免这种副作用,您始终需要像以下示例中一样使用双引号来放置变量:
cd "$AVGPATH"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接