Bonjour,
Je suis en train de créer un petit programme et j'ai besoin d'utiliser un contrôle de saisie, mais n'étant pas un expert en regex, j'aimerai un peu d'aide :D
Donc je vous explique pour chacune ce que je veux comme résultat et ce que j'ai fait après plusieurs recherches sur le net :
Numéro 1
Je veux que la variable ACTION puisse uniquement prendre des valeurs numériques entre 1 et 5. J'ai fait :
Je suppose après quelques tests que ça c'est ok.Code:"$ACTION" =~ "^[1-5]$"
Numéro 2
Une année comprise entre 1900 et cette année.
Quand je dit année, c'est uniquement des chiffres sans virgule
Je suppose après quelques tests que ça c'est ok.Code:
1
2 export YEAR=`date +%Y` [[ "$ANNEE" =~ "^[1-2][0|9][0-9][0-9]$" ]] && [[ "$ANNEE" -le "$YEAR" ]]
Numéro 3
Un nombre entier entre 1 et 99
Je suppose après quelques tests que ça c'est ok.Code:[[ "$NOMBRE" =~ "^[1-9]?[0-9]$" ]]
Numéro 4
Un nombre qui contient 0, 1, ou 2 décimales
La j'ai un souci, si je met 04 par exemple il me prend la saisie. Moi je veux uniquement qu'il prenne 0 si le nombre est 0.99 par exemple.Code:[[ "$PRIX" =~ "^[0-9]*\.?[0-9][0-9]$" ]]
Numéro 5
J'aimerai que l'affirmation soit testée pour [jpg] sans tenir compte de la casse au lieu de faire un if avec deux conditions
La je sais pas comment faire.Code:[ ! -e "$IMAGES/IMG_$AFFICHE.jpg" ] && [ ! -e "$IMAGES/IMG_$AFFICHE.JPG" ]
Numéro 6
Une note avec 0, 1 ou 2 décimales (de 5 en 5) comprise de 0 à 5
Si je met un chiffre sans décimal notamment il prend pas la saisie.Code:[[ "$NOTE" =~ "^[0-5]\.?[0-9]$" ]] && [ $(echo "5.1 - $NOTE" | bc | tr -d .) -gt 0 ]
Merci pour votre aide