Quero baixar um executável e executá-lo em uma única etapa, fornecendo argumentos para o executável.
Consegui descobrir como baixar + executar usando um pipe:
wget -O - http://xrl.us/cpanm | perl
Isso executa o cpanm
executável via perl
.
Agora quero adicionar um argumento, digamos A
:
wget -O - http://xrl.us/cpanm | perl A
Isso não funciona mais. Agora estou conseguindo Cannot write to ‘-’ (Success).
.
Como isso pode ser feito?
Responder1
Você pode colocarperlargumentos de script, após programname
os quais, neste caso, é a entrada padrão ( -
). Então, eu acho que é isso que você pergunta:
wget -O - http://xrl.us/cpanm | perl -- - A
ou
wget -O - http://xrl.us/cpanm | perl -- - --help
Ver:página de manual do perlrunpara mais detalhes.
Observação:Na página do manual:
Um "--" sinaliza o fim das opções e desativa o processamento adicional de opções. Quaisquer argumentos após "--" são tratados como nomes de arquivos e argumentos.
Em outras palavras, --
encerra operlargumentos. Depois disso colocamos o nome do arquivo que contém o script (no nosso caso esta é a entrada padrão que é indicada por um -
) e depois os argumentos para o script.