Boucle while qui ne s'arrête pas

Fermé
medou - Modifié le 5 mars 2020 à 11:32
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 5 mars 2020 à 11:46
Bonjour ,

Pouvez-vous m'aider svp ?
Mon script ci-dessous récupère les initiales en excluant les chiffres et les caractères spéciaux.
Quand je rentre un chiffre il demande bien des initiales valides, mais lorsque je rentre par exemple @8788 il n'applique pas la condition.

#! /bin/bash

echo ""
echo "***** Saisie des initiales *****"
echo ""
echo "Veuillez saisir vos initiales"
read reponse

regex="^[-+]?[0-9]*$"
digit="^[-+,*@]*$"


while [[ -z ${reponse} ]] || [[ ${reponse} =~ ${regex} ]]|| [[ ${reponse} =~ ${digit} ]]
do
         echo "Veuillez rentrer des initiales valides"
         read reponse
done

if [[ -n ${reponse} ]];
then
        G_INITIALES_IDENTIFICATION="${reponse}"
        echo "Installation effectuée par ${G_INITIALES_IDENTIFICATION}"
fi

Pouvez-vous m'aider à exclure tous les caractères spéciaux svp?

MErci d'avance
Cordialement,

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
5 mars 2020 à 11:46
Salut,

regex="[-+]?[0-9]+"
digit="[-+,*@]+"


Devrait aller mieux ;-))

0