O que significa um redirecionamento “(…)”?

31

Eu vi que o rvm (gerenciador de versão do Ruby) é instalado usando o seguinte comando:

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

Então, pelo que entendi, recebemos o conteúdo do script e o passamos para o bash (acredito que < < e << é a mesma coisa?) Estou interessado na parte < < , encontrada na seguinte descrição na net:

<< token Means use the current input stream as STDIN for the program until token is seen.

Isso de alguma forma não está claro para mim, alguém pode dar um exemplo ou explicá-lo de maneira mais simples?

    
por Stonerain 14.10.2011 / 23:09

2 respostas

38

Não, < < e << não são a mesma coisa.

O primeiro é composto do caractere de redirecionamento < comum combinado com o primeiro caractere da sintaxe <(command) . Essa é uma construção ksh93 (também encontrada em bash e zsh ) conhecida como substituição de processo que recebe a saída de command e a fornece em um arquivo cujo nome se refere à outra fim do pipe command está escrevendo para.

Em outras palavras, você pode pensar em < <(command) as < file , onde o arquivo contém a saída de command .

    
por 14.10.2011 / 23:24
16

É uma maneira complicada de fazer o mais simples:

curl -s https://raw.github.com/... | bash
    
por 15.10.2011 / 07:50