Test

alibm Messages postés 100 Statut Membre -  
tuxun Messages postés 388 Statut Membre -
Bonjour,

echo "entrez un nombre compris entre 8 et 12, 14 et 18"
read heur
while [[ $heur != [0-9]* || $heur != [0-9]* || $heur < 1 ]]; do
echo "Veillez vérifier l'heure"
read heur
done

Veuillez voir ce code.
mon problème comment faire pour que je peux sisir que des entiers entre 8 et 12, 14 et 18

Merci d'avance
A voir également:

2 réponses

jivef Messages postés 1024 Statut Membre 306
 
Salut,
Comme il s'agit d'heures, visiblement... j'aurais demandé que l'on saisisse une heure entre 08 et 12 et entre 14 et 18.
Ainsi, tu peux déjà limiter avec les regexp suivantes $heur!=0[8-9] | $heur!=1[0-2] et pour la deuxième tranche $heur!=1[4-8]
On peut probablement faire encore mieux, en cherchant un peu...

Cela dit, outre les regexp à améliorer, ton code me semble erroné.
Tu as deux fois la commande read et tu ne définis pas heur en tant que variable !

A bientux.

0
tuxun Messages postés 388 Statut Membre 34
 
Salut!
j'arrive a ceci, j'espere que cela pourra t'aider...

#!/bin/bash
echo "entrez un nombre compris entre 8 et 12, 14 et 18"
read heur
if [ $heur -ge 8 ] && [ $heur -le 12 ] || [ $heur -ge 14 ] && [ $heur -le 18 ] ; then echo "ds les intervalles"
while [[ $heur != [0-9]* || $heur != [0-9]* || $heur < 1 ]]; do echo "Veillez vérifier l'heure" read heur; done
else
echo "hors 8 et 12 et hors 14 et 18";
fi

Je me suis aidé de ces exemples: (http://www.laboiteaprog.com/prog/bash_condition.zip)
Cordialement,tuxun...
0