在一本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 的脚本