Contenu | Rechercher | Menus

Annonce

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 04/05/2013, à 10:38

Avin91

[R-É-S-O-L-U]Aide jeu facile question bash

Bonjour à toutes et à tous

J'ai pour projet de faire un jeu de questions avec bash
J'aimerais que le terminal pose une question et que si ce n'est pas la bonne réponse, il repose la question etc... Mais je ne trouve pas la syntaxe de cette boucle.
En gros, ça donnerait :

echo "Question1 : Bonjour, comment t'appelles-tu ?"
read nom
si nom="Jeannette" alors question 2
sinon retour question1
Question2 : quel est ton âge ?
si âge=8 alors question 3
sinon retour question2

Merci de votre aide smile

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


Manchot - LFS

Hors ligne

#2 Le 04/05/2013, à 10:55

Shanx

Re : [R-É-S-O-L-U]Aide jeu facile question bash

Renseigne-toi sur while. Mais avant tout, je te conseille de lire quelques tutos sur les scripts bash, ça devrait t’aider. Celui du site du 0 est un bon début. wink


Mes randos : grande traversées des Alpes, de l'Islande, de la Corse, du Japon (en vélo), etc.
Traversée des États-Unis à pied

Hors ligne

#3 Le 04/05/2013, à 10:56

Hizoka

Re : [R-É-S-O-L-U]Aide jeu facile question bash

par exemple :

while true
do
  read -p "Question1 : Bonjour, comment t'appelles-tu ? " nom
  [[ "${nom}" == "Jeannette" ]] && break
done

while true
do
  read -p "Question2 : quel est ton âge ? " age
  [[ "${age}" == "8" ]] && break
done

Perso j'aime bien : http://abs.traduc.org/abs-fr/

Dernière modification par Hizoka (Le 04/05/2013, à 10:57)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 04/05/2013, à 11:17

Avin91

Re : [R-É-S-O-L-U]Aide jeu facile question bash

Bonjour à vous deux smile

Shanx a écrit :

Renseigne-toi sur while. Mais avant tout, je te conseille de lire quelques tutos sur les scripts bash, ça devrait t’aider. Celui du site du 0 est un bon début. wink

J'ai le réflexe de taper google, j'ai déjà lu et leurs cours sont très bons. Et d'autres sites aussi. Toutefois quand je voulais le faire, j'avais toujours une erreur de syntaxe hmm

par exemple :

while true
do
  read -p "Question1 : Bonjour, comment t'appelles-tu ? " nom
  [[ "${nom}" == "Jeannette" ]] && break
done

while true
do
  read -p "Question2 : quel est ton âge ? " age
  [[ "${age}" == "8" ]] && break
done

< Parfait ! Merci smile

Par contre, ça signifie quoi l'option -p après read ???
Ah oui et j'ai essayé pour permettre plusieurs du nom $nom == "Jeannette" | "jeanette" etc... mais ça me met mauvaise syntaxe Oo ??
Et pour un message d'erreur je mets si on tape un autre nom ?

si nom=jeannette > break sinon mauvaise réponse !

Et ça sera tout smile

Dernière modification par Ivan91 (Le 04/05/2013, à 11:44)


Manchot - LFS

Hors ligne

#5 Le 04/05/2013, à 11:27

Avin91

Re : [R-É-S-O-L-U]Aide jeu facile question bash

@Shanx De plus la plupart des tutos sont sur des questions o/n.
J'avais trouvé ce tuto mais je n'y suis pas arrivé avec ce que je voulais faire

#!/bin/sh
# Fichier "canards"

echo "Quel est ton nom ?"
read nom

case $nom in
"Riri") echo "Ton oncle s'appelle Donald, Riri.";;
"Fifi") echo "Ton oncle s'appelle Donald, Fifi.";;
"Loulou") echo "Ton oncle s'appelle Donald, Loulou.";;
"*") echo "Tu n'es pas un neveu de Donald.";;
esac


Manchot - LFS

Hors ligne

#6 Le 04/05/2013, à 12:01

Hizoka

Re : [R-É-S-O-L-U]Aide jeu facile question bash

il faut juste ne pas encadré le * sinon c'est bon...

Par contre, ça signifie quoi l'option -p après read ???

essaie sans le -p, tu verras bien ce qu'il se passe tongue

Ah oui et j'ai essayé pour permettre plusieurs du nom $nom == "Jeannette" | "jeanette" etc... mais ça me met mauvaise syntaxe Oo ??
Et pour un message d'erreur je mets si on tape un autre nom ?

Il faut que tu lises les tuto car c'est une question plus que basic dont la réponse est dispo partout...
soit :

if blabla
then ...

elif blibli
then
fi

soit :

case $var in
  blabla) ;;
  blibli) ;;
esac

et si double possibilitée :

if [[ ${nom} == Jeannette || ${nom} == jeannette ]]

mais il y a plus simple :

nom="JeaNNetTe"
echo "${nom,,}"

donc :

[[ ${nom,,} == jeannette ]]

ainsi il y aura jamais de soucis de majuscule/minuscule


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

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

Avin91

Re : [R-É-S-O-L-U]Aide jeu facile question bash

Merci à vous deux. Je vais continuer car c'est très intéressant et enrichissant.
À bientôt


Manchot - LFS

Hors ligne