Vérifier un répertoire sans casse

Résolu
bossoax Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   -  
bossoax Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai une commande basique if [ -d $MON_REPERTOIRE ] then ...

Et j'aurais aimé savoir si on peut y ajouter une option pour ignorer la casse ?

En gros, des fois j'ai TOTO, des fois toto, des fois ToTo...

Merci à vous :)
A voir également:

7 réponses

foobar47 Messages postés 13536 Date d'inscription   Statut Contributeur Dernière intervention   533
 
Salut,

MON_REPERTOIRE=[tT][oO][tT][oO];

Ca fonctionne ?
0
bossoax Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
Le probléme c'est que des fois c'est tata, titi, toutou ou bien d'autre encore...


désolé
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
la variable et le répertoire peuvent être TOTO, toto, ToTo ?
ou bien la variable est toutjours toto ?
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Active l'option "nocaseglob" avec "shopt"...

Extrait du man bash :
   Développement des noms de fichiers
       Après le découpage des mots, et si l'option -f n'est pas indiquée, bash
       recherche  dans chaque mot les caractères *, ?, (, et [.  Si l'un d'eux
       apparaît, le mot est considéré comme un  motif,  et  remplacé  par  une
       liste,  classée par ordre alphabétique, des noms de fichiers correspon-
       dant à ce motif.  Si  aucun  nom  de  fichiers  ne  correspond,  et  si
       l'option  shell  nullglob  n'est pas active, le mot reste inchangé.  Si
       l'option  nullglob  est  active,  et  si  aucune  correspondance  n'est
       trouvée,  le  mot  est  supprimé.   Si  l'option  shell  nocaseglob est
       activée, la correspondance a lieu sans  tenir  compte  des  différences
       majuscules  /  minuscules.   Quand  un motif est utilisé pour créer des
       chemins d'accès, le caractère ``.''  au début d'un nom,  ou  immédiate-
       ment  à  la  suite d'un slash doit être explicitement mis en correspon-
       dance, à moins que l'option shell dotglob ne soit active.  Le caractère
       slash  doit  toujours  être  mis en correspondance explicitement.  Dans
       tous les autres cas, le caractère ``.''  n'est pas  traité  spécifique-
       ment.   Voyez  la  description  de  la  commande  shopt  dans COMMANDES
       INTERNES DU SHELL pour une description des  options  shell  nocaseglob,
       nullglob, et dotglob.

       shopt [-pqsu] [-o] [nom_opt ...]
              Bascule la  valeur  des  variables  contrôlant  le  comportement
              optionnel du shell.  Sans option, ou avec l'option -p, une liste
              de toutes les options configurables est affichée, avec l'indica-
              tion de l'état de chacune d'entre elles.  L'option -p réclame un
              affichage susceptible d'être réutilisé en  entrée.   Les  autres
              options ont les significations suivantes :
              -s     Activer chaque nom_opt indiqué.
              -u     Désactiver chaque nom_opt indiqué.
              -q     Supprimer la sortie normale (mode silencieux). Le code de
                     retour indique si l'option nom_opt est active ou non.  Si
                     plusieurs  nom_opt  sont  fournis en argument de l'option
                     -q, le code de retour est nul si tous  les  nom_opt  sont
                     actifs, et non-nul sinon.
              -o     Restreindre  les  valeurs  des nom_opts à celles définies
                     pour l'option -o de la commande set interne.

              Si  l'option  -s  ou  -u  est  utilisé  sans  argument  nom_opt,
              l'affichage  est  limité  aux  options qui sont actives ou inac-
              tives, respectivement.  sauf indication contraire,  les  options
              shopt sont désactivés par défaut.
;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bossoax Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
moi ca me fait peur de cocher cette option.

Je préfére faire

cd mon_repertoire_connu

ls | grep -i "mon_repertoire_sans_casse"
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
$ ls -F
tOtO/ TOTO12/
$ MON_REPERTOIRE=onk
$ D=$(find . -maxdepth 1 -iname $MON_REPERTOIRE)
$ echo $D

$ MON_REPERTOIRE=toto
$ D=$(find . -maxdepth 1 -iname $MON_REPERTOIRE)
$ echo $D
./tOtO
$ if [ -n $D ] ; then ...
0
bossoax Messages postés 44 Date d'inscription   Statut Membre Dernière intervention  
 
ok merci pour ces commandes, ca va m'aider :)
0