首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卷曲... | bash ..。这个斜杠是用来干嘛的?

问卷曲... | bash ..。这个斜杠是用来干嘛的?
EN

Stack Overflow用户
提问于 2013-04-11 22:44:05
回答 3查看 6.7K关注 0票数 38

查看为所有类型的项目(例如rvm)显示的神奇安装程序,您将始终看到以下命令:

代码语言:javascript
复制
\curl ... | bash

例如:

代码语言:javascript
复制
\curl -L https://get.rvm.io | bash -s stable

我想知道为什么这些命令以斜杠开头--它们看起来没有斜杠也运行得很好。

有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-11 22:47:22

这用于调用“原始”命令,避免使用可能的别名调用它。也就是说,在命令curl上禁用可能的别名,并调整为原始别名。

如果你有

代码语言:javascript
复制
alias grep='grep --color=auto'

然后你做grep,它会有颜色。所以如果你不想要颜色,你可以直接写\grep。

票数 62
EN

Stack Overflow用户

发布于 2013-04-11 22:47:40

这是一个反斜杠

它是以该名称(或函数)开头的命令,而不是别名。

要确保同时绕过函数和别名:

代码语言:javascript
复制
command somecommand

要绕过,只使用别名(从而启动一个函数,或者如果没有函数,则启动命令):

代码语言:javascript
复制
\somecommand

让我们看看哪个优先于哪个(我使用bash2.05b...ymmv)

我将定义一个函数和一个与命令同名的别名(ls):

代码语言:javascript
复制
$ alias ls='echo A'
$ function ls { echo B ; }

使用"type -all ls“可以显示计算的顺序:

代码语言:javascript
复制
$ type -all ls
ls is aliased to `echo A'
ls is a function
ls ()
{
    echo B
}
ls is /usr/bin/ls

但我们也可以通过尝试来找出答案:

代码语言:javascript
复制
$ ls
A
$ \ls
B
$ command ls
file1 file2 file3

所以看起来优先级顺序是:别名,- seems 函数,在路径中使用的-seems命令。

当然,如果您精确地指定了相对/绝对路径,那么它将被强制为指向的命令:

代码语言:javascript
复制
$ /usr/bin/ls
file1 file2 file3
票数 21
EN

Stack Overflow用户

发布于 2013-04-11 22:47:43

它绕过了可能的别名curl。

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

https://stackoverflow.com/questions/15951772

复制
相关文章

相似问题

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