转义 - 使用路径名中的空格将Bash脚本cd到目录
我在macOS X上使用Bash,我想创建一个简单的可执行脚本文件,当它运行时会改变到另一个目录。 但是,该目录的路径中包含空格。 你怎么做到这一点? 这就是我所拥有的......
文件名:cd "~/My Code"
文件内容:
cd ~/My Code
现在被授予,这不是一个长路径名,但我的实际路径名是深五个目录,其中四个目录在路径中有空格。
顺便说一下,我试过cd "~/My Code"和cd "~/My\ Code",这些都没有奏效。
Benjamin W. asked 2019-04-15T10:55:02Z
12个解决方案
71 votes
当您双引号路径时,您将停止波浪号扩展。 所以有几种方法可以做到这一点:
cd ~/"My Code"
cd ~/'My Code'
这里没有引用波浪号,因此波浪扩展仍然会运行。
cd "$HOME/My Code"
您可以在双引号字符串中展开环境变量; 这基本上是代字号扩展正在做的事情
cd ~/My\ Code
您还可以使用反斜杠转义特殊字符(例如空格)。
derobert answered 2019-04-15T10:55:33Z
31 votes
我在这个页面上找到了以下解决方案:
x="test\ me"
eval cd $x
\在双引号文本常量和eval(