38

查看为所有类型的项目(例如,用于 rvm)出现的魔法安装程序,您将始终看到如下命令:

\curl ... | bash

例如

\curl -L https://get.rvm.io | bash -s stable

我想知道为什么这些命令以斜杠开头 - 没有它它们似乎运行良好。

有什么建议么?

4

3 回答 3

62

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

如果你有

alias grep='grep --color=auto'

然后你做grep,它会有颜色。因此,如果您不想要颜色,则只需编写\grep.

于 2013-04-11T14:47:21.873 回答
21

这是一个反斜杠

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

确保同时绕过函数别名

command somecommand

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

\somecommand

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

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

$ alias ls='echo A'
$ function ls { echo B ; }

使用“type -all ls”显示评估顺序:

$ type -all ls
ls is aliased to `echo A'
ls is a function
ls ()
{
    echo B
}
ls is /usr/bin/ls

但是我们也可以通过尝试来发现:

$ ls
A
$ \ls
B
$ command ls
file1 file2 file3

因此,优先顺序似乎是:路径中采用的别名-before-函数-before-命令

当然,如果你精确的相对/绝对路径,那么它就会被强制为指向的命令:

$ /usr/bin/ls
file1 file2 file3
于 2013-04-11T14:47:39.863 回答
3

它绕过了一个可能的别名curl

于 2013-04-11T14:47:42.780 回答