Não consigo entender este script. bash (curl -s http://xxx.com)

6

Em um livro de trilhos, o autor escreveu o script para instalar o ruby rvm.

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

Mas não entendo como isso funciona. Você poderia explicar isso?

    
por Benjamin 30.05.2012 / 04:04

2 respostas

11

Existe um < < operador (aqui documento), mas não é o que é usado aqui.

Você tem primeiro um redirecionamento de entrada < que diz escolher a entrada do argumento a seguir, então há a <(command) conhecida como substituição do processo que diz substituir por um descritor de arquivo contendo a saída do comando.

Este comando poderia ter sido escrito

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

mas é apenas uma maneira complicada de fazer:

curl -s https://rvm.beginrescueend.com/install/rvm | bash
    
por 30.05.2012 / 07:30
4

one <<(two) executa o comando two e canaliza sua saída para one . A maneira mais comum de escrever é two | one , então seu comando também pode ser escrito:

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

Esse link está quebrado agora, mas o site diz para usar isso:

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

curl gera o resultado do download, portanto, ele faz o download do arquivo em get.rvm.io e canaliza seu conteúdo para o bash. Se você acabou de executar o comando curl sozinho, pode ver o seu script bash que baixa e instala o rvm

    
por 30.05.2012 / 04:13