|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Nicolas Inscription : février 2009 Messages : 37 ![]() |
Bonjour à tous,
Je cherche un moyen de récupérer le chemin complet du script dans lequel je me trouve au cours d'une execution. Pour faciliter je cherche un moyen non dépendant de l'OS (commande externe exclue donc) et je ne souhaite pas avoir à passer cette information en tant que paramètre (oui je fais dans le simple). Je considère aussi que le chemin de ce script peut très bien ne pas être le chemin en cours (cwd) lors de l'exécution. Quelque chose de similaire à la variable $0 mais avec le chemin serait parfait en fait mais je n'ai rien trouvé de concluant... Merci d'avance. |
|
|
00
|
|
|
#3 | ||
![]() ![]() ![]() Inscription : avril 2004 Messages : 13 487 ![]() |
J'ai pas tout saisi, mais voici un code qui pourrait te suffire :
Code :
__________________
|
||
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Nicolas Inscription : février 2009 Messages : 37 ![]() |
Le probleme du cwd c'est qu'il va me renvoyer le répertoire courant donc mettons que je me trouve dans /home/deneteth, si j'exécute le script /usr/bin/test.pl je vais récupérer /home/deneteth et pas /usr/bin/ (ce que je recherche).
Pour ce qui est du FindBin par contre il y a peut être quelque chose (le basename semble correspondre à ce que je recherche). Je vais regarder cela de plus près. Merci ! |
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Inscription : avril 2004 Messages : 13 487 ![]() |
as tu testé le script
__________________
|
|
|
00
|
|
|
#6 | ||
|
Nouveau Membre du Club
![]() Nicolas Inscription : février 2009 Messages : 37 ![]() |
Ben rapido oui
Code :
Par contre je retire ce que j'ai dit sur $0, il m'a effectivement retourné le chemin complet ce coup-ci et pas dans mon autre script... je vais regarder cela de plus prêt. Je passe résolu de toute façon, j'ai effectivement un moyen de récupérer le chemin qui m'intéresse. |
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 1 ![]() |
je déterre ce sujet résolu pour apporter une petite précision (qui a déjà été évoqué à propos du basename).
La variable $0 est à traiter avec le module Find : use Find::Basename; my $nom_script = basename $0; #=> nom du script my $rep_script = dirname $0;#=> repertoire du script quelque soit le repertoire courant de lancement |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com