Question: Ruby Version Manager (RVM) installed like so:

```
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

```

I understand what first < mean (feeds bash script to bash interpreter), I'm confused with `<(...)` part. So, what parentheses do here and the less than sign. 
In which cases we can use same syntax?

I tried to dig on the internet, found this SO question <https://stackoverflow.com/questions/2188199/bash-double-or-single-bracket-parentheses-curly-braces> and this question on ubuntuforums: <http://ubuntuforums.org/showthread.php?p=7803008> But still have no idea why we use those parentheses and why we use input redirection twice.

```
bash < curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer

```

ain't the same?

Thanks.

Answer: 
It's [**process substitution**](http://tldp.org/LDP/abs/html/process-sub.html). It feeds the output of the command into a FIFO that can be read from like a normal file.
It means "run the command inside the brackets, and return a filename that represents the standard output of that command here".

So, that translates to two commands:

```
curl ... > something
bash -s stable < something

```

...where "something" is the magic. (Typically, `/dev/fd/...` or a pipe.)