Recuperation chemin execution de script

Recuperation chemin execution de script - Perl - Programmation

Marsh Posté le 28-09-2005 à 11:22:52    

bonjour,
 
 
je voudrais recuperer dans une variable le chemin dans lequel j'ai lancé mon script.
 
Exemple :  je me trouve dans /home, je lance mon script et celui affiche : /home.
 
j'ai vu quelque chose y ressemblant sur le net, mais je n'arrive pas a le retrouver.
 
merci

Reply

Marsh Posté le 28-09-2005 à 11:22:52   

Reply

Marsh Posté le 28-09-2005 à 11:37:04    

Il faut lire le contenu de $0, qui contient la chaîne d'appel à ton programme.
 
Exemple :
/home/monscript.pl
=> $0 == /home/monscript.pl
 
monscript.pl
=> $0 == monscript.pl
 
Ensuite, plusieurs possibilités :
 

  • $0 commence par un "/", et ton chemin est absolu. Pas de travail à faire.


  • $0 ne commence pas par un "/" et le chemin est relatif. Deux possibilités :

1. Le script se trouve dans le répertoire courant ;
2. Le script se trouve quelque part dans le PATH.
 
Dans ce cas-là, tu dois commencer par tester si le fichier "$0" existe :

if ( -e "$0" ) { ... }


 
Si le test réussit, $0 est relatif au répertoire courant.
 
Si le test échoue, tu dois parcourir le contenu de ta variable PATH, accessible via le hash %ENV, jusqu'à trouver le nom de ton script.


Message édité par Elmoricq le 28-09-2005 à 11:38:19
Reply

Sujets relatifs:

Leave a Replay

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