While condition chaine de caractère
medou922
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
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
- Chaine tnt gratuite sur mobile - 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