Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
874 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°381511
stef_dober​mann
Personne n'est parfait ...
Posté le 04-05-2003 à 01:03:53  profilanswer
 

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...
mood
Publicité
Posté le 04-05-2003 à 01:03:53  profilanswer
 

n°381717
stef_dober​mann
Personne n'est parfait ...
Posté le 04-05-2003 à 15:01:53  profilanswer
 

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


---------------
Tout à commencé par un rêve...
n°383535
stef_dober​mann
Personne n'est parfait ...
Posté le 05-05-2003 à 23:14:04  profilanswer
 

ben alors personne c pourquoi ?


---------------
Tout à commencé par un rêve...
n°383734
arghbis
salops de dauphins
Posté le 06-05-2003 à 09:06:46  profilanswer
 

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
n°384015
stef_dober​mann
Personne n'est parfait ...
Posté le 06-05-2003 à 11:14:20  profilanswer
 

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...
n°384213
arghbis
salops de dauphins
Posté le 06-05-2003 à 13:10:16  profilanswer
 

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!!

n°384291
stef_dober​mann
Personne n'est parfait ...
Posté le 06-05-2003 à 13:50:01  profilanswer
 

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...
n°384792
arghbis
salops de dauphins
Posté le 06-05-2003 à 17:03:38  profilanswer
 

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)

n°385010
stef_dober​mann
Personne n'est parfait ...
Posté le 06-05-2003 à 19:25:11  profilanswer
 

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...
n°385430
arghbis
salops de dauphins
Posté le 07-05-2003 à 08:59:26  profilanswer
 

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:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

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

 

Sujets relatifs
Fichier Batch : comment insérer des balises ? [Pb résolu][Débutant][Résolu] Comment superposer 2 JLabel ?
[MFC/C++] Créer un menu+gérer les évenements du menu [résolu][ Python ] problème libftp [ resolu ]
fonction équivalente au 'split' de perl? [pb regexp]Comment avoir l'interface de WinXP avec une application VB6[résolu]
Executer une commande en JAVA[ConTEXT] Executer 2 app avec 1 Execute key / Bcc compiler projet
[Perl/Tk] TkZinc, le canvas nouvelle generation ! 
Plus de sujets relatifs à : [PERL] executer une commande (facile)... [resolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR