Test

Fermé
alibm Messages postés 82 Date d'inscription jeudi 18 septembre 2008 Statut Membre Dernière intervention 15 juin 2011 - 19 mars 2009 à 00:53
tuxun Messages postés 357 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 16 décembre 2010 - 19 mars 2009 à 05:59
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 927 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 12 novembre 2020 306
19 mars 2009 à 05:30
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 357 Date d'inscription vendredi 13 mars 2009 Statut Membre Dernière intervention 16 décembre 2010 34
19 mars 2009 à 05:59
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