Bash: comparaison
gardiendelanuit
Messages postés
1854
Statut
Membre
-
gardiendelanuit Messages postés 1854 Statut Membre -
gardiendelanuit Messages postés 1854 Statut Membre -
Bonjour,
Hé oui encore un problème ce soir: je veux vérifier (en bash) si la personne ne s'est pas trompée de frappe: 0 pour oui et 1 pour non par exemple.
En effet j'ai testé plusieurs bricoles puisque les principales ne marchaient pas car le =! semble comparer des lettres et -ne des chiffres...
Seulement voilà si jamais l'utilisateur tape un "a" au lieu d'un "1" ... comment le vérifier?
Merci d'avance pour vos réponses :)
Hé oui encore un problème ce soir: je veux vérifier (en bash) si la personne ne s'est pas trompée de frappe: 0 pour oui et 1 pour non par exemple.
En effet j'ai testé plusieurs bricoles puisque les principales ne marchaient pas car le =! semble comparer des lettres et -ne des chiffres...
Seulement voilà si jamais l'utilisateur tape un "a" au lieu d'un "1" ... comment le vérifier?
Merci d'avance pour vos réponses :)
A voir également:
- Bash: comparaison
- Bingo bash free - Télécharger - Divers Jeux
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
- Bash permission non accordée - Forum Shell
- Bash list ✓ - Forum Shell
6 réponses
redirection='0'
echo -e "Tapez ${rougefonce}0${neutre} pour entrer un lien ou ${jaune}1${neutre} pour traiter les liens du fichier \"link\""
read redirection
while [ $redirection =! "[0-1]" ] #Vérification si le choix est correct
do
echo -e "Entrez ${rougefonce}0${neutre} ou ${jaune}1${neutre}!"
read redirection
done
Toujours le même problème : /
Même avec =! '[0-1]' si on tape une lettre ca ne marche pas
essaye avec :
redirection=0
echo -e "Tapez ${rougefonce}0${neutre} pour entrer un lien ou ${jaune}1${neutre} pour traiter les liens du fichier \"link\""
read redirection
while [ $redirection =! [0-1] ] #Vérification si le choix est correct
do
echo -e "Entrez ${rougefonce}0${neutre} ou ${jaune}1${neutre}!"
read redirection
done
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question$ cat foo.sh
#! /bin/bash
#set -xv
while true
do
read -p "Tapez 0 ou 1 : " reponse
if [[ ${reponse} != [01] ]]
then
echo "Pas bon."
continue
else
echo "C'est bon."
break
fi
done
$ ./foo.sh
Tapez 0 ou 1 : a
Pas bon.
Tapez 0 ou 1 : l
Pas bon.
Tapez 0 ou 1 : 5
Pas bon.
Tapez 0 ou 1 : B
Pas bon.
Tapez 0 ou 1 : 1
C'est bon.
$