Vérifier un répertoire sans casse

Résolu
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 :)
Configuration: Windows XP
Firefox 3.5.2

7 réponses

  1. Contributeur
    Salut,

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

    Ca fonctionne ?
    0
    1. Le probléme c'est que des fois c'est tata, titi, toutou ou bien d'autre encore...

      désolé
      0
      1. Contributeur
        hello
        la variable et le répertoire peuvent être TOTO, toto, ToTo ?
        ou bien la variable est toutjours toto ?
        0
        1. Modérateur
          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
          1. 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
            1. Contributeur
              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
              1. ok merci pour ces commandes, ca va m'aider :)
                0