J'ai une boucle while, j'aimerais l'arrêter lorsque l'utilisateur appuie sur la lettre "s" du clavier.
Je devrais gérer le problème avec un "piège" et en utilisant un signal relatif, que le bloc par défaut a avec la combinaison "ctrl + c", mais j'aurais le même effet en appuyant sur "s".
(Je n'ai pas besoin d'utiliser la commande read)
Où placer les commandes?
pourriez-vous m'expliquer?
Je vous remercie
Le code:
!/bin/bash
while true
do
echo text text text text
done
Réponses:
0 pour la réponse № 1Après quoi Aserre dit:
#!/bin/bash
if [ -t 0 ]; then stty -echo -icanon -icrnl time 0 min 0; fi
keypress=""
while [ "$keypress" != "s" ]; do
echo text text text
keypress="`cat -v`"
done
if [ -t 0 ]; then stty sane; fi
0 pour la réponse № 2
Je ne sais pas pourquoi tu ne veux pas utiliser read
comme il serait aussi simple que
#! /bin/bash
while :
do
echo "text text text"
read -t 0.3 -n 1 k
[[ "$k" == "s" ]] && break
done