无法理解这个脚本。 bash

无法理解这个脚本。 bash

在一本rails书中,作者写了安装ruby rvm的脚本。

bash <<(curl -s https://rvm.beginrescueend.com/install/rvm)

但我不明白它是如何工作的。你能解释一下吗?

答案1

有一个 << 运算符(此处文档),但它不是此处使用的。

首先有一个输入重定向<,它表示从以下参数中选择输入,然后是所谓<(command)的进程替换,它表示将其替换为包含命令输出的文件描述符。

这个命令可以写成

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

但这只是一种复杂的做法:

curl -s https://rvm.beginrescueend.com/install/rvm | bash

答案2

one <<(two)运行命令two并将其输出传输到one.更常见的写法是two | one,所以你的命令也可以写成:

curl -s https://rvm.beginrescueend.com/install/rvm | bash

该链接现已损坏,但该网站使用这个来代替:

curl -L get.rvm.io | bash -s stable

curl输出它下载的内容,因此这会下载文件 atget.rvm.io并将其内容通过管道传输到 bash。如果您只是单独运行该curl命令,您可以看到它是一个bash下载并安装 rvm 的脚本

相关内容