While condition chaine de caractère
medou922
Messages postés
3
Statut
Membre
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
Bonjour,
Pouvez-vous m'aider ?
Jécris une boucle while qui vérifie que la variable n'est pas vide, et que la variable ne contient pas de chiffre ( est bien une chaine de caractère)
Voici mon script :
La condition que je saisie pour vérifier que la variable n'est pas compris entre 0 et 9 ne fonctionne pas.
Aurez-vous des suggestions svp ?
Merci d'avance pour votre aide.
Cordialement,
Pouvez-vous m'aider ?
Jécris une boucle while qui vérifie que la variable n'est pas vide, et que la variable ne contient pas de chiffre ( est bien une chaine de caractère)
Voici mon script :
#! /bin/bash
2
3 echo ""
4 echo "***** Saisie des initiales *****"
5 echo ""
6 echo "Veuillez saisir vos initiales"
7 read reponse
8 while [[ -z ${reponse} ]] && [[ ${reponse} = ~^[-+]?[0-9]*$ ]]
9 do
10 echo "Veuillez rentrer des initiales valides"
11 read reponse
12 done
13 if [[ -n ${reponse} ]];
14 then
15
16 G_INITIALES_IDENTIFICATION=$reponse
17
18 echo "Installation effectuée par $G_INITIALES_IDENTIFICATION"
19
20 fi
La condition que je saisie pour vérifier que la variable n'est pas compris entre 0 et 9 ne fonctionne pas.
Aurez-vous des suggestions svp ?
Merci d'avance pour votre aide.
Cordialement,
A voir également:
- While condition chaine de caractère
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Excel cellule couleur si condition texte - Guide
- Caractere vide - Guide
1 réponse
Salut,
Il ne faut pas se tromper sur l'évaluation (ET/OU) ;-\
Dans ton cas c'est OU ( || ) et non pas ET ( && ).
Et attention à la syntaxe ! Il ne faut pas d'espace entre "=" et "~" ;-(
Il ne faut pas se tromper sur l'évaluation (ET/OU) ;-\
Dans ton cas c'est OU ( || ) et non pas ET ( && ).
Et attention à la syntaxe ! Il ne faut pas d'espace entre "=" et "~" ;-(
#! /bin/bash
echo ""
echo "***** Saisie des initiales *****"
echo ""
echo "Veuillez saisir vos initiales"
read reponse
regex="^[-+]?[0-9]*$"
while [[ -z ${reponse} ]] || [[ ${reponse} =~ ${regex} ]]
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