pipe para sudo -E bash -

10

Eu queria saber qual é a finalidade da tubulação o arquivo baixado por curldentro sudo -E bash -na seguinte shell:

curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -

Mr.Y
fonte

Respostas:

10

É uma maneira curta de executar um script sem precisar salvar o arquivo e executá-lo. Quando você salva o arquivo e o executa, várias coisas podem dar errado:

  • O usuário não digitou o nome do arquivo corretamente
  • O usuário não usou o shell correto (talvez tenha sido executado em sh foo.shvez de bash foo.sh)
  • O usuário tentou executar o arquivo em vez de definir o bash ( ./foo.sh) e esqueceu de definir permissões de execução
  • Usuário esqueceu de usar sudo

Ao fornecer uma única linha de comando para executar, os desenvolvedores podem diminuir o número de locais onde as coisas podem dar errado devido a um erro do usuário.

Pessoalmente, eu desprezo o encanamento de tubulação para bater. Não é seguro.

muru
fonte
7

Este comando faria o download do arquivo e tentaria executá-lo com privilégios de root.

Barafu Albino
fonte
3
Obrigado, mas qual é o objetivo da -Eopção e -no final do comando?
Mr.Y
5
O @Youssef -Epreserva variáveis ​​de ambiente (digamos variáveis ​​para configurações de proxy) e -diz ao bash para ler comandos da entrada padrão, ou seja, o canal.
Muru