我在macOS X上使用Bash,我想创建一个简单的可执行脚本文件,它在运行时会切换到另一个目录。但是,该目录的路径中包含空格。你到底是怎么做到的?这就是我所拥有的。
文件名:cdcode
文件内容:
cd ~/My Code
现在承认,这不是一个很长的路径名,但我的实际路径名有五个目录深,其中四个目录在路径中有空格。
顺便说一句,我试过cd "~/My Code"
和cd "~/My\ Code"
,但它们都不起作用。
发布于 2009-02-26 05:23:13
当您对路径进行双引号时,您正在停止波浪号的扩展。因此,有几种方法可以做到这一点:
cd ~/"My Code"
cd ~/'My Code'
此处没有引用代字号,因此代字号扩展仍将运行。
cd "$HOME/My Code"
您可以在双引号字符串中展开环境变量;这基本上就是代字号展开所做的
cd ~/My\ Code
您还可以使用反斜杠对特殊字符(如空格)进行转义。
发布于 2010-06-13 23:52:58
发布于 2017-12-03 18:43:59
在解决了同样的问题之后,我尝试了两种不同的解决方案:
1.在变量中使用双引号(""
)。
最简单的方法是用双引号将变量引起来,就像上一个答案中指出的那样:
cd "$yourPathWithBlankSpace"
2.使用eval
。
根据这个答案Unix command to escape spaces,您可以去掉空格,然后使用eval
,如下所示:
yourPathEscaped=$(printf %q "$yourPathWithBlankSpace")
eval cd $yourPathEscaped
https://stackoverflow.com/questions/589149
复制相似问题