#1 Le 05/04/2020, à 15:28
- MichaelMtl
Script bash :interrompre un boucle infinie en entrant une valeur
Bonjour tout le monde !
je suis vraiment nouveau dans ce domaine, pourriez-vous m'aider s'il vous plait? Je dois exécuter la boucle infinie suivante:
#!/bin/bash
#Comment
now=(date)
while :
do
echo $now
done
et la demande est :
<<Le script tourne dans une boucle infinie qui affiche l’heure et attend une entrée de l’utilisateur. Tant que l’utilisateur fait simplement « enter », on réaffiche l’heure à nouveau et on attend encore une entrée… Si l’utilisateur entre « 0 », la boucle se termine proprement avec le message « Exécution terminée »
Comment faire pour arrêter la boucle en appuyant sur entrée, et puis taper une valeur?
J'ai beaucoup cherché sur Internet mais je ne trouve pas la réponse.....
Merci en avance !
Hors ligne
#2 Le 05/04/2020, à 15:52
- kamaris
Re : Script bash :interrompre un boucle infinie en entrant une valeur
Tape
help read
dans un terminal, et vois ce que tu peux en faire
Hors ligne
#3 Le 05/04/2020, à 18:37
- Watael
Re : Script bash :interrompre un boucle infinie en entrant une valeur
salut,
AVANT de coder,
il faut transcrire la "demande" en "raisonnement informatique" (en algorithme) :
Tant_que "la_valeur_entrée_par_l’utilisateur" n'est_pas__égale_à '0'
on affiche l’heure
on *lit* une entrée dans la_valeur_entrée_par_l'utilisateur
finTantQue
afficher "fin boucle"
la demande est piégeuse, parce que
- la boucle a une fin : l'utilisateur entre "0"
- le script "n'attend pas" : il demande que l'utilisateur entre une donnée et la valide.
Dernière modification par Watael (Le 05/04/2020, à 19:53)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 06/04/2020, à 09:42
- Hizoka
Re : Script bash :interrompre un boucle infinie en entrant une valeur
Y a plusieurs façons de le faire
avec une boucle ou simplement avec une fonction qui s'appelle elle même si besoin.
par contre, avec ton exemple, l'heure que tu affiches sera toujours la même...
et sinon, comme indiqué, regarde read
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne