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. 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
    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. 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. Je n'ai rien compris, mais tu peux filtrer ton param avant avec la fonction "cut"