这是什么意思"bash <<(curl http://rvm.io/releases/rvm-install-head)"

nop*_*ole 7 bash shell

RVM主页

http://rvm.io/

建议人们使用安装RVM

bash < <( curl http://rvm.io/releases/rvm-install-head )
Run Code Online (Sandbox Code Playgroud)

这是什么语法? command <( another_command)

不能原来的线? curl http://rvm.io/releases/rvm-install-head | bash

Bri*_*ell 14

<(command)使用命令的输出(或使用现有/dev/fd文件)创建命名管道,并将该管道的文件名替换为命令.<然后重定向来自该给定文件的标准输入.

所以是的,在这种情况下,这相当于

curl http://rvm.io/releases/rvm-install-head | bash
Run Code Online (Sandbox Code Playgroud)

我不确定为什么他们会建议更复杂,更便携的版本.在某些情况下,您更喜欢使用版本< <()的版本使用管道,因为管道为命令接收输入创建子shell(在本例中为bash),同时< <()为命令生成输出创建子shell.如果使用管道,则子shell中的命令不能修改sh​​ell环境中的变量,这有时是需要的(如果要将某些内容传递给while read ...命令).但是,在这种情况下,命令的输出只是直接传递给显式调用bash; 这里没有任何东西需要从父shell运行.