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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BASH] test si variable contient ./* [Résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BASH] test si variable contient ./* [Résolu]

n°1667371
stany13
Posté le 07-01-2008 à 20:48:36  profilanswer
 

Bonsoir , et oui encore moi lol !
je souhaite faire un test du genre :
if [ $chemin = ./* ]
then
...
else  
 
En fait , je souhaite tester si un chemin est absolu ou relatif , mais $chemin = ./* ne marche pas , et je n'arrive pas a trouver la solution... alors si quelqu'un pouvait m'aider , j'en serais très reconnaissant!
 
Merci encore ^^


Message édité par stany13 le 07-01-2008 à 21:44:46
mood
Publicité
Posté le 07-01-2008 à 20:48:36  profilanswer
 

n°1667384
_mumu_
Posté le 07-01-2008 à 21:25:59  profilanswer
 

Code :
  1. if [ $chemin = "`echo $chemin|grep ./`" ]
  2. then
  3. echo "ch relatif"
  4. else
  5. echo "ch abs"
  6. fi


---------------
"Software is like sex. It's better when it's free..."   Linus Torvalds
n°1667389
stany13
Posté le 07-01-2008 à 21:44:28  profilanswer
 

Oh MERCI _mumu_ , sa marche niquel !!
Vraiment merci beaucoup  :bounce:

n°1667485
matafan
Posté le 08-01-2008 à 08:43:58  profilanswer
 

if echo $chemin | grep -qF ./


c'est plus mieux.
 
Note quand même que la méthode est fausse : si un des répertoires dans ton chemin commence ou fini par un point, tu va en déduire que le chemin est relatif alors qu'il peut être absolu. Inversement un chemin peut être relatif sans contenir de "./" (par exemple toto/titi). En fait un chemin est absolu si et seulement si il commence par un / (enfin je pense ?). Donc :
 

if echo $chemin | grep -q ^/
then
    echo "absolu"
else
    echo "relatif"
fi

n°1667630
stany13
Posté le 08-01-2008 à 12:09:22  profilanswer
 

Merci bien pour ces détails !  
J'avais pas vu la suptilité ^^

n°1667880
aigles
Posté le 08-01-2008 à 17:38:20  profilanswer
 

Autre possibilité sous bash/ksh
 

if [[ "$chemin" = /* ]]
then  
    echo "absolu"  
else  
    echo "relatif"  
fi


 
Jean-Pierre


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BASH] test si variable contient ./* [Résolu]

 

Sujets relatifs
[RESOLU] Signification d'un return[résolu]probleme de chaine vide non détectée
[BASH] Cron en seconde? / Comparaison de deux variables[BASH] Probleme cron et autres [Résolu]
[Résolu] Défine préprocesseur contenant un point[Resolu] [Bash] Ecrire le résultat d'une commande dans un fichier HTML
récupérer le chemin du fichier interprété ? [résolu][PHP] Construire nom variable pour travail sur grand nombre de champs
Plus de sujets relatifs à : [BASH] test si variable contient ./* [Résolu]


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