Como você pode obter um arquivo e executá-lo diretamente enquanto fornece argumentos?

Como você pode obter um arquivo e executá-lo diretamente enquanto fornece argumentos?

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 cpanmexecutá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 programnameos 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.

informação relacionada