Je viens de faire utilitaire assez simple pour changer un configuration.
A la fin de ce script je demande à l'utilisatuer si les changement lui convient, en tapant O pour Oui et n pour non
J'ai commencé mon script comme ceci :
#!/bin/bash
clear
CONDITION_FINALE=O
until [ "$var1" = "$CONDITION_FINALE" ]
do
#exécution de l'utilitaire jusqu'a la ligne suivante
echo -n "Est ce que cela vous conviens ? [O,n]"
read $var1
done
exit 0
Le problème c'est que la boucle ne s'arrête pas.
J'aimerais aussi que 0 soit la réponse par défaut.
Merci de votre aide
# == ou -eq dans le test ?
Posté par fasthm . Évalué à 2.
La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".
# c'est pas plutot ...
Posté par castorpilot . Évalué à 2.
[^] # Re: c'est pas plutot ...
Posté par dubis . Évalué à 1.
C'est bien cela.... En enlevant $ la boucle s'arrête en tapant O
Maintenant si je veux O en réponse par défaut, est ce qu'il faut que je continue à utiliser until ?
Merci de votre aide
# avec une boucle for je tatonne
Posté par dubis . Évalué à 1.
#!/bin/bash
clear
CONDITION_FINALE=n
for (( var1=O ; "$var1" == "$CONDITION_FINALE";))
do
#exécution de l'utilitaire jusqu'a la ligne suivante
echo -n "Est ce que cela vous conviens ? [O,n]"
read var1
done
exit 0
Mais j'ai quand même un message d'erreur à la sortie du script qui fait pas beau :
./boucle_until.sh: line 5: ((: == n: erreur de syntaxe : opérande attendu (error token is "== n")
[^] # Re: avec une boucle for je tatonne
Posté par castorpilot . Évalué à 2.
En gros, tant que la personne ne tape pas "n" (CONDITION FINALE), tu lui reposes la question ?
Est ce que tu ne voudrais pas plutot :
- poser la question
- faire comme si une response vide valait "O"
- reposer la question si ce n'est ni "n" ni "O" qui est tapé
Si c'est le cas, et comme tu utilises bash, tu peux regarder du coté des substitutions de variables ${variable:-default} : si variable n'est pas definie ou si elle est vide, alors on utilise la valeur par defaut. Ici, on peut utiliser
read reponse
echo ${reponse:-Oui}
qui vaudra Oui si l'utilisateur tape juste sur Entrée.
[^] # Re: avec une boucle for je tatonne
Posté par dubis . Évalué à 1.
En fait j'aimerais que mon script
- Pose la question
- Si c'est n, il repose la question
- Si c'est oui ou rien la boucle s'arrête.
J'ai donc repris la première version du script avec la boucle until. et j'ai rajouté la ligne de Castorpilot.
Voici le résultat :
Est ce que cela vous conviens ? [O,n]
O
Est ce que cela vous conviens ? [O,n]
var1 prend bien la value O mais cela n'arrête pas la boucle.
Merci de votre aide
[^] # Re: avec une boucle for je tatonne
Posté par castorpilot . Évalué à 2.
Voila en vite fait degueux.
O ou rien : arret de la boucle
Toute autre reponse (y compris n) : ça recommence à poser la question
[^] # Re: avec une boucle for je tatonne
Posté par kowalsky . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.