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 
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.
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
1 2
| export YEAR=`date +%Y`
[[ "$ANNEE" =~ "^[1-2][0|9][0-9][0-9]$" ]] && [[ "$ANNEE" -le "$YEAR" ]] |
Je suppose après quelques tests que ça c'est ok.
Numéro 3
Un nombre entier entre 1 et 99
[[ "$NOMBRE" =~ "^[1-9]?[0-9]$" ]]
Je suppose après quelques tests que ça c'est ok.
Numéro 4
Un nombre qui contient 0, 1, ou 2 décimales
[[ "$PRIX" =~ "^[0-9]*\.?[0-9][0-9]$" ]]
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.
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
[ ! -e "$IMAGES/IMG_$AFFICHE.jpg" ] && [ ! -e "$IMAGES/IMG_$AFFICHE.JPG" ]
La je sais pas comment faire.
Numéro 6
Une note avec 0, 1 ou 2 décimales (de 5 en 5) comprise de 0 à 5
[[ "$NOTE" =~ "^[0-5]\.?[0-9]$" ]] && [ $(echo "5.1 - $NOTE" | bc | tr -d .) -gt 0 ]
Si je met un chiffre sans décimal notamment il prend pas la saisie.
Merci pour votre aide
Partager