Dernièrement, pour le besoin d’un script, il me fallait créer une regex pour check que les dates étaient valide.
Voici la regex que j’ai utilisé
REGEX_DATE="^[0-9]{4}-(0[0-9]|1[0-2])-([0-2][0-9]|3[0-1])$"
Il suffit ensuite de le mettre dans un while et d’ajouter un read pour avoir une boucle qui pose et repose la question tant que la date entrée dans le terminal n’est pas valide.
J’utilise dans ce cas la le format de date anglais YYYY-MM-DD
#!/bin/bash # # Code by Thomas Bourcey # # Check date with regex. The date should be YYYY-MM-DD # Use "while" for do not break loop until input is a valid date # REGEX_DATE="^[0-9]{4}-(0[0-9]|1[0-2])-([0-2][0-9]|3[0-1])$" while true; do read -p "Enter the date of account deactivation. Format [YYYY-MM-DD] : " DATE if [[ $DATE =~ $REGEX_DATE ]]; then echo "Good date format !" break else echo "Bad date format, try again !" fi done echo "Next Step >>"