首页 > 编程知识 正文

shell转移,表示回车的转义字符

时间:2023-05-03 17:04:04 阅读:8994 作者:206

转义-使用路径名空格将Bash脚本cd保存到目录中

虽然在macOS X上使用了Bash,但我想创建一个简单的可执行脚本文件,在运行时将其更改到其他目录。 但是,此目录的路径包含空格。 你怎么这么做? 这就是我拥有的东西……。

文件名: cd '~/My Code '

文件内容:

CD~/my代码

被许可了。 这不是长路径名,但实际路径名为5个深度目录,其中4个目录在路径中有空间。

顺便说一下,我尝试了cd '~/My Code '和CD'~~/mycode ',但是这些都没有成功。

Benjamin w.asked 2019-04-15t 10336055336002 z

12个解决方案

71电压

用双引号括住路径将停止波浪号扩展。 有几种方法可以实现这一点

cd ~/'My Code '

cd ~/'My Code '

因为这里没有引用波浪号,所以波浪号扩展仍然会执行。

cd '$HOME/My Code '

环境变量可以用双引号字符串展开。 这基本上是奇尔达扩张在做的事情

光盘(/my )代码

也可以使用反斜杠转义特殊字符,如空格。

derobertanswered 2019-04-15t 10336055336033 z

31电压

在此页面上找到了以下解决方案:

x='test me '

eval cd $x

(双引号文本常数和eval(CD之前)的组合,动作像魅力一样!

user 365757 answered 2019-04-15t 10336056336004 z

8电压

可以使用以下选项之一:

cd ~/'My Code '

cd ~/M'y Code '

cd ~/My' Code '

你不能用:

CD ()/my代码)。

第一个工作原因是shell将/扩展到$ HOME /,并将其添加到我的代码中而没有双引号。 第二个失败是因为名为“”(双引号)的用户未映射到~ '。

jonathanleffleranswered 2019-04-15t 10336056336043 z

6电压

光盘(/my )代码

似乎对我有用.如果删除引号或保留斜线都不起作用,可以发出示例代码吗?

andrewflanagananswered 2019-04-15t 10336057336015 z

4电压

单个反斜杠对我有帮助:

ry4an @ ry4an-mini :~$ mkdir ' my code '

ry4an @ ry4an-mini :~$ VI todir.sh

ry4an @ ry4an-mini :~$.todir.sh

ry4an @ ry4an-mini : my code $ cat ./todir.sh

#! 感性摩托车/sh

光盘(/my )代码

问题是,我确信您的shell脚本不是在子shell中更改了目录,但完成后是否返回到主shell (和原始目录)? 通过使用避免了。 尽管很多人只使用别名,但他们会在当前shell上运行脚本。 这些空间可能是红色鲱鱼。

ry4anbraseanswered 2019-04-15t 10336057336054 z

3电压

避开脚本; 用$ HOME代替。

chrisf.a.Johnson answered 2019-04-15t 10336058336020 z

2电压

在Linux上工作时,以下语法是正确的:

光盘(/my )代码

但是,在运行文件时,请使用以下语法:

$.CD代码

(只是)。 不是“”. /”)

alterlifeanswered 2019-04-15t 10336059336017 z

2电压

这样做是一个非常简单的方法

$ cd My Folder

在bash中运行DIR命令时,可以看到结果中包含以下空格的文件夹或路径名写入到结果中-

$dir

My Folder

新文件夹

mayukhdattaanswered 2019-04-15t 10336059336052 z

2电压

在努力解决同样的问题之后,我尝试了两种不同的解决方案:

解决方案1 :最简单的方法只有双引号变量。 如前面的答案your path escaped=$ (printf % q ' $ yourpathwithblankspace ' )所示

解决方案2 :要根据此答案Unix命令退出空间,可以剥离空间以利用Eval,如下所示:

your path escaped=$ (printf % q ' $ yourpathwithblankspace ' ) eval cd $yourPathEscaped

Hannibal 90 answered 2019-04-15t 11336000336044 z

1电压

因为使用bash脚本转储数据,所以现在发生了同样的问题。 最终在脚本文件夹中创建了符号链接。 没有空间。 然后,把我的脚本指向符号链接,运行正常。

创建链接。 ln-s [ targetdirectoryorfile ]./[ shortcut ]

Mau或者可能没用。

answered 2019-04-15t 11336001336029 z

1电压

使用双引号

go () ) ) )。

{

cd '$* '

}

boboanswered 2019-04-15t 11:01336058 z

0电压

使用单引号。 示例:

myPath=~/'my dir '

cd $myPath

jadiananswered 2019-04-15t 11:02336027 z

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。