[Cascavel-pm] Executar comando bash
Alceu R. de Freitas Jr.
glasswalk3r em yahoo.com.br
Terça Setembro 16 14:20:04 CDT 2003
Só para arrematar a resposta de todos (que são todas
válidas), usar system, duas crases, open, open2,
open3, tem suas implicações de segurança. Se você
estiver preocupado com isso, recomendo ler:
perldoc perlsec
Para verificar as possibilidades de rodar comandos
shell sem chamar o shell (interessante isso, não?).
Eu costumo usar system, passando os parâmetros
separados por vírgulas, assim:
system("grep","i","$arquivo");
do que assim:
system("grep -i $arquivo");
Em relação à obter a saída do programa, você vai ter
que usar open para fazer uma chamada segura, e aí é
mais complicado de explicar (eu nem lembro direito):
open(FOO,"-|") or exec 'echo';
Algo como cria um processo pai, que pega a saída
padrão de um processo filho gerado pelo exec, que ao
contrário do `comando` e system não chama o shell.
A mágica aqui é um pouco mais sombria, e eu não
compreendo direito. Alguém se arrisca a explicar?
[]´s
Alceu
--- Rodolfo Sikora <sikora em inova.com.br> escreveu: >
Cara eu costumo fazer o seguinte:
>
> my $a = `comando feliz`;
>
> mas cuida que nem tudo vai para o stdout.. tem
> coisas que sai para os outros lados, tipo stderr e
> se não me engano não vai para sua variável.
>
> Interessante se existirem outras formas de fazer
> isto, eu sei que tem open2 e open3 se nao me engano,
> mas não gosto muito dele.
>
> []s;
>
> =================
> >De:"Leandro Costa" <lscosta em uninet.com.br>
> >Para:<cascavel-pm em mail.pm.org>
> >Assunto:[Cascavel-pm] Executar comando bash
> >
> >Ola galera
> >
> >Como faco para executar uma comando bash dentro
> >do perl
> >ex.: wc -l teste.txt
> >
> > E ainda jogar o conteudo para uma variavel ?
> >
> >grato
> >Leandro
_______________________________________________________________________
Desafio AntiZona: participe do jogo de perguntas e respostas que vai
dar um Renault Clio, computadores, câmeras digitais, videogames e muito
mais! www.cade.com.br/antizona
Mais detalhes sobre a lista de discussão Cascavel-pm