[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