首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我键入"?“在shell中,它变成了一个"\?",为什么?

当我键入"?“在shell中,它变成了一个"\?",为什么?
EN

Stack Overflow用户
提问于 2019-10-13 19:42:49
回答 1查看 39关注 0票数 0

我在AWS上使用Ubuntu。

我试着输入这个:

代码语言:javascript
运行
复制
curl https://www.google.com/?1

但它总是得到这样的结果:

代码语言:javascript
运行
复制
curl https://www.google.com/\?1

还有一个额外的反斜杠\

为什么会发生这种情况?如果我不在curl之后输入它,那么\就不会出现。curl如何修改我的外壳?

EN

回答 1

Stack Overflow用户

发布于 2019-10-13 19:53:12

问号在shell中有特殊的含义。在shell中,反斜杠也有特殊的含义:它是一个转义字符,从后面的字符中删除了特殊含义。

看起来你只是想把问号当作问号来使用,而不是用它的特殊含义。因此,您必须对其进行转义,即在其上添加反斜杠。否则,您输入的命令将表示不同的含义,并且可能不会执行您想要执行的操作。

为什么会发生这种情况?

看起来您的shell试图通过为您添加反斜杠来帮助您。如果你百分之百确定你确实想要问号的特殊行为,那么你可以简单地删除反斜杠。

如果你百分之百确定,你总是比编写shell的程序员更了解shell是如何工作的,我敢肯定,有一些方法可以关闭这个功能。

注意:执行此操作的可能不是shell。更有可能的是,shell支持一些钩子函数来帮助输入,并且您已经设置了一个钩子函数来为您完成这些类型的修改。

curl如何修改我的外壳?

简单的基本逻辑告诉你,不可能是curl在做这件事,因为它发生在你输入命令的时候。显然,在您按回车键之前,curl甚至没有运行,所以很明显,如果它不运行,它将无法执行任何操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58363230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档