如何转义传递给 cd 的变量中的空格

如何转义传递给 cd 的变量中的空格

我在装有 Ubuntu 的 Windows 10 上使用 WSL。
我经常使用的目录路径包含名称中带有空格的目录。我无法更改该名称。目录的路径很长:
/mnt/c/Users/name/Dropbox/My PC (Laptop...)/Desktop/Studies/Python
因此,我想在 .bashrc 中创建一个变量,其名称$PROJECTPATH等于目录的路径。
这样我就可以调用或别名cd $PROJECTPATH并获取我的文件。
我尝试编写:

PROJECTPATH='/mnt/c/Users/name/Dropbox/My\ PC\ \(Laptop...\)/Desktop/Studies/Python'

alias prjct='cd $PROJECTPATH'

但是运行 prjct 时,我收到错误消息“参数过多”,这意味着传递给 cd 的命令中有空格。
在将变量传递给 cd 或任何其他命令时,如何转义空格?
我应该导出这种变量吗?

答案1

您需要在定义$PROJECTPATH中添加双引号alias

另外,我建议不要在变量定义中使用反斜杠。它的可读性较差,在本例中不需要:

PROJECTPATH='/mnt/c/Users/name/Dropbox/My PC (Laptop...)/Desktop/Studies/Python'

alias prjct='cd "$PROJECTPATH"'

相关内容