[PERL] executer une commande (facile)... [resolu]

executer une commande (facile)... [resolu] [PERL] - Perl - Programmation

Marsh Posté le 04-05-2003 à 01:03:53    

Salut :hello:
 
Voici mon pb :
Sous linux en commande bash cette ligne marche nikel :

Citation :

ifconfig ppp0 | grep inet | awk '{print $2}' | awk -F \":\" '{print $2}'


j'ai bien l'IP de ma connexion ADSL.
Hors quand j'exécute l'un de c'est script en Perl :

Citation :

#! /usr/bin/perl
$ip = exec("ifconfig ppp0 | grep inet | awk '{print $2}' | awk -F \":\" '{print $2}'" );
print "$ip\n";


Citation :

#! /usr/bin/perl
$ip = system("ifconfig ppp0 | grep inet | awk '{print $2}' | awk -F \":\" '{print $2}'" );
print "$ip\n";


Citation :

#! /usr/bin/perl
$ip = `ifconfig ppp0 | grep inet | awk '{print $2}' | awk -F ":" '{print $2}'`;
print "$ip\n";


 
j'obtiens toujours le même résultat :

Citation :

         inet addr:193.253.62.197  P-t-P:193.253.62.1  Mask:255.255.255.255


pk?
 
certain me dirons : "bou le nul, il c meme pas programmer  :kaola: ! tiens une solus pour un nase :"

Code :
  1. #! /usr/bin/perl
  2. $ip =`ifconfig ppp0 | grep inet`;
  3. if( $ip =~ /inet\s+addr:([\d\.]+)/i ) {
  4. $ip = $1;
  5. print "$ip\n";
  6. }


 
ca marche nikel mais ce ne me dit pas pourquoi l'autre ne marche pas :lol:
 
j'ai deja vu ce topic mais il ne m'interresse pas !
http://forum.hardware.fr/forum2.ph [...] subcat=392
 
Edit : correction d'une enormité !


Message édité par stef_dobermann le 06-05-2003 à 19:26:18

---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 04-05-2003 à 01:03:53   

Reply

Marsh Posté le 04-05-2003 à 15:01:53    

pourquoi la commande bash awk ne fonctionne pas en perl :??:


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 05-05-2003 à 23:14:04    

ben alors personne c pourquoi ?


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 06-05-2003 à 09:06:46    

si le code que tu as écris ici est le même que celui que tu utilise, je pense avoir trouvé un pb :  
#! /usr/bin/perl
$ip = `"ifconfig ppp0 | grep inet | awk '{print $2}' | awk -F ":" '{print $2}'`;
print "$ip\n";
 
pourquoi tu nous mets des doubles quotes ici??   [:the time]  
 
 :hello:


Message édité par arghbis le 06-05-2003 à 09:07:06
Reply

Marsh Posté le 06-05-2003 à 11:14:20    

simple erreur de typographie :D
j'ai d'abord fait des tests avant de poster, j'ai donc fait des copié/coller pour écrire ce topic mais dans le prog il n'y sont pas !
 
tu t'ai arrété sur la derniére proposition mais alors pourquoi les 2 précédentes ne onctionne pas aussi ?
 
 
En faite j'ai dégrossit et j'ai trouvé que c'étais la commande "awk" qui ne fonctionne pas quand c'est Perl qui le lance ! mais pourquoi je c pas :??:


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 06-05-2003 à 13:10:16    

heu rassure moi, tu as bien protégé les simples quotes hein??
 
Ps : si tu pouvais corriger es fautes de typo dans ton premier post, ce serait pluys pratique pour savoir exactement ce que tu as écris!!

Reply

Marsh Posté le 06-05-2003 à 13:50:01    

il ne faut pas confondre ` et '  l'une permet d'executer une commande systeme (` => AtlGr + 7) et l'autre pour affecter une chaine de caractére ( ' => touche 4 )
 
sinon je voi ce que tu veux dire !


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 06-05-2003 à 17:03:38    

rassures-toi, je connais très bien la différence entre quotes et backticks. Je m'en suis pas mal servi en Perl (d'ailleurs, c aussi valable en PHP en Bash et aussi sh je crois).
 
Mais je maintiens qu'il faut protéger les simples et doubles quotes, de même que tout caractère spécial (pour une ligne de comande s'entend)

Reply

Marsh Posté le 06-05-2003 à 19:25:11    

respect  

Code :
  1. my $ip = `ifconfig ppp0 | grep inet | awk \'\{print \$2\}\' | awk -F \':\' \'\{print \$2\}\'`;
  2. print "$ip\n";


 
ca marche !
 
désolé de t'avoir pris pour une truf  :lol:


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 07-05-2003 à 08:59:26    

c'est bien ce qu'il me semblait!  :sarcastic:  
 
m'enfin bon, je t'en veux pas! moi aussi je suis lent à la comprenette de temps en temps!  :whistle:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed