Si tu lances ton interpréteur perl, c'est que tu fais un fork(). Un processus forke hérite des variables d'environnement du processus de l'environnement qui le lance. Mais le processus fils de peut pas modifier l'environnement du père.
En outre, tu peux renvoyer un code retour, mais c'est limité : c'est un nombre entre -127 et +127.
Le mieux c'est de renvoyer ce que tu veux sur la sortie standard de ton script perl : comme ceci
perl (script.pl)
> #!/usr/bin/perl
> my $resultat="Le resultat !!!";
> print "$resultat\n";
mais de ce que j'ai compris tu as un scipt shell qui a besoin d'une valeur calculé par un prog perl :)
tout pleins de solution l'export de varible ne marche que dans le sens pere->fils ( je crois ) donc il te reste
1 ) les fichiers temporaires ( bouh pas bô )
2 ) les I/O en shell la meillieur maniere de renvoyer une varible a un process pere et un bete echo ( ou print )
donc tu devrai pouvoir écrire var=$( toto.pl )
ensuite tu peux aussi tout faire en perl en mettan un #!/usr/bin/perl en premiere ligne ca se lance comme un script shell ensuite :P
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
# RE: Exporter variable perl dans le shell qui le lance
Posté par tontonflingueur . Évalué à 3.
Si tu lances ton interpréteur perl, c'est que tu fais un fork(). Un processus forke hérite des variables d'environnement du processus de l'environnement qui le lance. Mais le processus fils de peut pas modifier l'environnement du père.
En outre, tu peux renvoyer un code retour, mais c'est limité : c'est un nombre entre -127 et +127.
Le mieux c'est de renvoyer ce que tu veux sur la sortie standard de ton script perl : comme ceci
perl (script.pl)
> #!/usr/bin/perl
> my $resultat="Le resultat !!!";
> print "$resultat\n";
shell :
> RESULTAT=`perl script.pl`
RESULTAT devrait contenir "Le resultat !!!".
[^] # Re: RE: Exporter variable perl dans le shell qui le lance
Posté par fearan . Évalué à 0.
moins d'une minute d'écart
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: RE: Exporter variable perl dans le shell qui le lance
Posté par gc (site web personnel) . Évalué à 1.
je dirais plutôt que l'écart se situe entre une valeur faible tendant vers 0 positif, et une valeur tendant par le bas à 2 minutes.
[^] # Re: RE: Exporter variable perl dans le shell qui le lance
Posté par defoua . Évalué à 1.
ça fonctionne pour une variable et ça me suffit pour ce que je veut faire.
Je ne savais pas qu'un processus fils ne pouvait pas modifier l'environnement du père !!
à bientôt
[^] # Re: RE: Exporter variable perl dans le shell qui le lance
Posté par FReEDoM (site web personnel) . Évalué à 0.
Les shells permettent seulement d'initialiser les processus fils avec certaines vairble de leur environnments (via export).
Chaque processus à son espace de mémoire distinct : on ne peut faire dialoguer 2 processus que par IPC, signaux ou encore socket...
# ca manque un peu de précisions...
Posté par fearan . Évalué à 2.
tout pleins de solution l'export de varible ne marche que dans le sens pere->fils ( je crois ) donc il te reste
1 ) les fichiers temporaires ( bouh pas bô )
2 ) les I/O en shell la meillieur maniere de renvoyer une varible a un process pere et un bete echo ( ou print )
donc tu devrai pouvoir écrire var=$( toto.pl )
ensuite tu peux aussi tout faire en perl en mettan un #!/usr/bin/perl en premiere ligne ca se lance comme un script shell ensuite :P
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.