查看为所有类型的项目(例如rvm)显示的魔术安装程序,您将始终看到如下命令:
\curl ... | bash
e.g。
\curl -L https://get.rvm.io | bash -s stable
我想知道为什么这些命令以斜线开头 - 没有它它们似乎运行良好。
有什么建议吗?
答案 0 :(得分:58)
这用于调用“原始”命令,避免使用可能的别名调用它。也就是说,禁用命令curl
上的可能别名并调整为原始别名。
如果你有
alias grep='grep --color=auto'
然后你做grep
,它会有颜色。因此,如果您不想要颜色,则只需编写\grep
。
答案 1 :(得分:21)
这是一个反斜杠
是以该名称(或函数)开始的命令,而不是ALIAS。
确保绕过功能和别名:
command somecommand
绕过只是别名(从而启动一个函数,或者如果没有函数,则命令):
\somecommand
让我们看看哪个优先于哪个(我使用bash 2.05b ... ymmv)
我将定义一个函数AND别名,其名称与命令(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
答案 2 :(得分:3)
它绕过了可能的别名curl
。