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

  FORUM HardWare.fr
  Programmation
  Perl

  Probleme d'execution de la commande Unix echo via le perl

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme d'execution de la commande Unix echo via le perl

n°686694
samuelp
Posté le 29-03-2004 à 16:31:32  profilanswer
 

Bonjour,
 
j'ai un probleme avec la commande echo du perl :/
 

Code :
  1. sub mafonction()
  2. {
  3. use Shell qw(echo);
  4. $test=echo("Message",'>',"/fichier" );
  5. }


 
En lançant la commande echo via le Perl je n'arrive point à ecrite Message dans le fichier :/
Pourtant $test me renvoie bien echo "Message" > fichier :/
 
Quelqu'un aurait une idée ?

mood
Publicité
Posté le 29-03-2004 à 16:31:32  profilanswer
 

n°686706
anapajari
s/travail/glanding on hfr/gs;
Posté le 29-03-2004 à 16:45:42  profilanswer
 

t'aurrais pas oublié de printer $test des fois ???
par ailleurs tu feras gaffe que ton fichier est envoyé sur "/" comme chemin!

n°686767
samuelp
Posté le 29-03-2004 à 18:07:04  profilanswer
 

anapajari a écrit :

t'aurrais pas oublié de printer $test des fois ???
par ailleurs tu feras gaffe que ton fichier est envoyé sur "/" comme chemin!
 


j'ai fais un print $test, sans succes :/

n°687016
matafan
Posté le 30-03-2004 à 03:13:55  profilanswer
 

Tu as les droits d'écriture sur ton fichier ? Sinon le pod parle d'un bug qui laissait les simple quote dans la commande exécutée.

n°687022
samuelp
Posté le 30-03-2004 à 07:11:50  profilanswer
 

matafan a écrit :

Tu as les droits d'écriture sur ton fichier ? Sinon le pod parle d'un bug qui laissait les simple quote dans la commande exécutée.


Euh, oui j'ai les droits d'ecriture.
J'arrive toujours pas à remplir ce fichier :/

n°687077
anapajari
s/travail/glanding on hfr/gs;
Posté le 30-03-2004 à 09:46:43  profilanswer
 

bin ecoute j'ai pris ton script tel quel copié collé et ça marche ...
par contre contre ça envoie le fichier dans '/'.
Tu es sur des droits en écriture?

n°687125
Aricoh
gentil mais fo po pousser
Posté le 30-03-2004 à 10:48:55  profilanswer
 

Essaie ceci pour voir :
 

Code :
  1. sub mafonction
  2. {
  3.     eval { `echo Message >/fichier`; };
  4.     if ($@)
  5.     {
  6.         print "Pb retour de eval : $@";
  7.     }
  8. }


 
Edit : ce sont des anti-quotes qui entourent la commande echo (touche 7 du pavé alphanumérique)


Message édité par Aricoh le 30-03-2004 à 10:51:02

---------------
j'suis l'Duc des 7 Enfers Éternels ...
n°687168
anapajari
s/travail/glanding on hfr/gs;
Posté le 30-03-2004 à 11:10:28  profilanswer
 

si on a le droit de faire autrement, perso j'ai tendance à préferer:

Code :
  1. my $cmd="echo Message > /fichier";
  2.   system($cmd);


mais comme d'hab TMTOWTDI...

n°687330
burgergold
5$? va chez l'diable!
Posté le 30-03-2004 à 14:10:25  profilanswer
 

pourquoi ne pas simplement ouvrir le fichier en ensuite faire des  
 

Code :
  1. print FSOR "montexte";


 
ou alors
 

Code :
  1. `echo "toto" > monfichier`;


---------------
http://www.boincstats.com/signature/user_664861.gif
n°688791
samuelp
Posté le 31-03-2004 à 18:31:28  profilanswer
 

anapajari a écrit :

si on a le droit de faire autrement, perso j'ai tendance à préferer:

Code :
  1. my $cmd="echo Message > /fichier";
  2.   system($cmd);


mais comme d'hab TMTOWTDI...


Bien vu, mais il peut se poser un probleme :  
si j'execute une commande shell par systeme et que la commande shell se plante (ou se bloque) mon programme perl se bloque lui aussi :/
Mais bon, c'est mieux que rien

mood
Publicité
Posté le 31-03-2004 à 18:31:28  profilanswer
 

n°689782
drigaudier​e
Perl or die;
Posté le 01-04-2004 à 14:52:32  profilanswer
 

samuelp a écrit :

Bonjour,
 
En lançant la commande echo via le Perl je n'arrive point à ecrite Message dans le fichier :/
Pourtant $test me renvoie bien echo "Message" > fichier :/
 
Quelqu'un aurait une idée ?


 
Je te déconseille de mettre des donnés dans un fichier de cette
façon, tu lances un process à chaque fois ce qui est lourd.
 
Je te propose la solution suivante :
 

Code :
  1. my $file = '/foo/bar/my_file';
  2. my $message = "Hello world\n";
  3. open FILE, ">$file" or die "Unable to open $file : $!";
  4. print FILE $message;
  5. close FILE;


 
Si tu veux ajouter des données au fichier et ne pas
réécraser le fichier à chaque fois utilise >> à la place de
> dans le open
 
 
David "Sniper" Rigaudiere
Les mongueurs de Perl - http://www.mongueurs.net
Les journées Perl 2004 - http://conferences.mongueurs.net/2004


Message édité par drigaudiere le 01-04-2004 à 15:37:45

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

  Probleme d'execution de la commande Unix echo via le perl

 

Sujets relatifs
probleme de passage de fonction en parametresProblème de lib PNG (PHP 4.3.3)
[PHP] convertir date fr type 27/02/2001 en timestamp unix correctProblème de positionnement [maj : solutions à deux problèmes]
[PHP] Probleme avec les sessionsProblème de ClassLoader
Petit probleme de div :/probleme de tableau et de font
probleme avec pointeur sur objet[C] Problème pour obtenir l'@ IP
Plus de sujets relatifs à : Probleme d'execution de la commande Unix echo via le perl


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