Vérifier un répertoire sans casse

Résolu/Fermé
bossoax Messages postés 44 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 13 novembre 2012 - 7 août 2009 à 16:26
bossoax Messages postés 44 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 13 novembre 2012 - 8 août 2009 à 15:42
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 jeudi 9 janvier 2003 Statut Contributeur Dernière intervention 16 mai 2014 532
7 août 2009 à 16:38
Salut,

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

Ca fonctionne ?
0
bossoax Messages postés 44 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 13 novembre 2012
7 août 2009 à 17:02
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 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
8 août 2009 à 09:26
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
8 août 2009 à 09:45
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 mardi 27 novembre 2007 Statut Membre Dernière intervention 13 novembre 2012
8 août 2009 à 15:36
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 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
8 août 2009 à 15:40
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 mardi 27 novembre 2007 Statut Membre Dernière intervention 13 novembre 2012
8 août 2009 à 15:42
ok merci pour ces commandes, ca va m'aider :)
0