Bash et REGEXP

Résolu
Bonjour tout le monde !!!

je suis entrain d'écrire une ptit script dans lequel j'aimerais tester la syntax d'un paramètre.

if [[ $1 =~ /dev/[a-]{3} ]]

en fait je voudrais tester si le param 1 a pour valeur /dev/hda mais je voudrais que le test soit vrai uniquement sil y a 3 alpha.
le problème est que si plus de 3 alpha, le test est quand meme bon donc problème, on sait tous q'un part se nomme de cette manière /dev/hdX ou /dev/sdX

voila jespère etre comprehenssible...

Merci d'avance :)

4 réponses

  1. Je n'ai rien compris, mais tu peux filtrer ton param avant avec la fonction "cut"
    1. Contributeur
      Salut,

      en fait je voudrais tester si le param 1 a pour valeur /dev/hda mais je voudrais que le test soit vrai uniquement sil y a 3 alpha.
      Euh... ce n'est pas clair tout ça ;-(
      1. salut,

        le $ marque la fin d'une ligne, i.e. la fin d'une regex.
        par exemple
        for i in /dev/*; do [[ $i =~ /dev/[a-z]{3}$ ]] && echo "$i"; done
        /dev/bsg
        /dev/bus
        /dev/dri
        /dev/log
        /dev/mem
        /dev/net
        /dev/ppp
        /dev/pts
        /dev/rtc
        /dev/sda
        /dev/shm
        /dev/snd
        /dev/tty
        /dev/vcs
        1. j'était parti pour la refaire mais merci, j'avais pensé au cut mais pas a la fin de ligne.

          Merci a tous pour la réactivité et qqchquicommenceparQ pour la réponse.

          Bonne aprem,

          PS/ je suis en train d'apprendre les expression régulière, c'est pas gagné xD