Contenu | Rechercher | Menus

Annonce

L'équipe des administrateurs et modérateurs du forum vous invite à prendre connaissance des nouvelles règles.
En cas de besoin, vous pouvez intervenir dans cette discussion.

Ubuntu 18.04 LTS
Ubuntu-fr propose des clés USB de Ubuntu et toutes ses « saveurs » ainsi qu'un magnifique t-shirt pour cette toute nouvelle version d'Ubuntu !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/05/2013, à 01:44

frechajar

boucle while et until avec shell

Rebonsoir tout le monde ,
L'utilisateur fait entrer une chaine oui ou la chaine non et si il fait entrer autre chose,
le script redemande la saisie jusqu'a ce qu'il entre oui ou non

je commence avec ce petit code vu que  je suis debutante

# sh saisie.sh
echo "entrer une chaine "
read $chaine
if [$chaine -eq "oui"]
thenecho "ok pour la chaine "
    elif[$chaine -eq "non"]
    then echo "ok pour la chaine "
        else   echo "resaisie la chaine "

Comment je peux utiliser la boucle until et while pour ce script ?????

Hors ligne

#2 Le 13/05/2013, à 04:36

nesthib

Re : boucle while et until avec shell

while read -p "Entrer une chaîne (oui/non) : " chaine
do
  case $chaine in
    oui) echo 'ok pour la chaîne OUI' ; break ;;
    non) echo 'ok pour la chaîne NON' ; break ;;
  esac
done

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 13/05/2013, à 08:27

tiramiseb

Re : boucle while et until avec shell

Autre approche possible :

while [ "$chaine" != "oui" -a "$chaine" != "non" ]
do
  read chaine
done
if [ "$chaine" = "oui" ]
then
  echo "ok pour la chaine OUI"
elif [ $chaine = "non" ]
then
  echo "ok pour la chaine NON"
fi

Et encore une autre approche :

while [ "$chaine" != "oui" -a "$chaine" != "non" ]
do
  read chaine
done
case "$chaine" in
  oui)
    echo "ok pour la chaine OUI"
    ;;
  non)
    echo "ok pour la chaine NON"
    ;;
esac

Attention, plusieurs erreurs graves dans ton script :
- la commande "read" prend le nom de la variable ("chaine") et non sa valeur ("$chaine")
- il faut mettre des espaces avant et après "[" et "]"
- il faut mettre une espace après "then"
- avec "-eq" tu testes une égalité numérique, si tu veux tester une égalité de chaîne il faut utiliser "="


C'est encore pour ton examen ?

Dernière modification par tiramiseb (Le 13/05/2013, à 12:18)

Hors ligne

#4 Le 13/05/2013, à 12:10

Watael

Re : boucle while et until avec shell

salut tiramiseb

&& provoque une erreur à l'intérieur d'un test, il faudrait utiliser l'option -a, ou alors deux instructions test.


eval, c'est mal.

Hors ligne

#5 Le 13/05/2013, à 12:18

tiramiseb

Re : boucle while et until avec shell

Oups désolé, j'aurais dû me relire. J'ai corrigé l'erreur dans le message #3, merci Watael.

Hors ligne

#6 Le 13/05/2013, à 12:27

frechajar

Re : boucle while et until avec shell

Je vous remercie infiniment c'est tres gentil  neutral

Hors ligne

#7 Le 13/05/2013, à 12:33

frechajar

Re : boucle while et until avec shell

coucou tiramiseb,
oui c'est pour l'examen nous aurons des question similaire a une serie sans correction et sans aucun exemple en cour,
j'essaye d'apprendre a programmer .
Merci a vous

Hors ligne

#8 Le 13/05/2013, à 12:38

tiramiseb

Re : boucle while et until avec shell

Mais ce ne sont pas des choses que tu dois voir en cours !?

Hors ligne

#9 Le 13/05/2013, à 12:42

frechajar

Re : boucle while et until avec shell

j'aimerais avoir juste des exemple pour pouvoir faire d'autres, par contre maintant je suis capable de raisonner un peu grace au forum  .

Merci

Hors ligne

#10 Le 13/05/2013, à 12:51

frechajar

Re : boucle while et until avec shell

cher tiramiseb !!!
Excusez moi pourriez vous m'aider sur ce qui est posté sur ce lien ???
http://forum.ubuntu-fr.org/viewtopic.ph … #p13529801
J'arrive pas a le faire

Hors ligne