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 26/04/2020, à 18:41

philoeil

[RESOLU] Quelle commande pour boucler sur une etape d'un script

Bonjour,

J'ai un script qui met un certain temps à s’exécuter et attend une réponse de l'utilisateur pour poursuivre.

J'ai trouvé une commande qui fait un son pour m'alerter

Comment faire pour actionner cette commande sans fin et me permettre d’arrêter cette commande sans arrêter tout le script (par CTRL+C)

Une boucle peut-être de ce genre mais quel test imaginer ?
est-ce que les frappes au clavier (sans usage de read qui interromprait ma boucle sonnante) peuvent par une redirection être renvoyées dans une variable ?

while test
do
mpg123 ~/Documents/MesSons/R2D2Son.mp3
sleep 20
 test?
done

Merci

Dernière modification par philoeil (Le 27/04/2020, à 07:30)

Hors ligne

#2 Le 26/04/2020, à 19:23

Hizoka

Re : [RESOLU] Quelle commande pour boucler sur une etape d'un script

Ça n'irait pas read -t 20 ?

while [[ -z ${REPLY} ]]
do
  mpg123 ~/Documents/MesSons/R2D2Son.mp3
  echo
  read -t 20 -p "Alors ? "
done

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

Hors ligne

#3 Le 26/04/2020, à 19:37

kamaris

Re : [RESOLU] Quelle commande pour boucler sur une etape d'un script

Tu pourrais faire

trap 'break' INT
while true; do
  mpg123 ~/Documents/MesSons/R2D2Son.mp3
  sleep 20
done
trap INT

Le premier ctrl+c arrêtera seulement la boucle infinie.
Ou bien tu peux choisir un autre signal.

Dernière modification par kamaris (Le 27/04/2020, à 09:38)

Hors ligne

#4 Le 27/04/2020, à 07:26

philoeil

Re : [RESOLU] Quelle commande pour boucler sur une etape d'un script

Bonjour,

Merci à vous Hizoka et Kamaris

La solution de Hizoka me semble fonctionner, Bravo!!

La boucle dans la solution de Kamaris ne parvient pas à s'arréter je n'ai peut être pas compris

Man Trap ne me renvoie rien
Merci bien

Hors ligne

#5 Le 27/04/2020, à 09:43

kamaris

Re : [RESOLU] Quelle commande pour boucler sur une etape d'un script

trap n'est pas censé renvoyer quelque chose, il est là pour attraper un signal envoyé au script.
Le signal en question, ici, c'est INT, que l'on peut envoyer au script en tapant ctrl+c avec le clavier.
Une fois que trap a reçu le signal, il exécute la commande break, c'est-à-dire qu'il stoppe la boucle while si on se trouve dedans au moment où le signal est envoyé.

Hors ligne

#6 Le 27/04/2020, à 18:44

philoeil

Re : [RESOLU] Quelle commande pour boucler sur une etape d'un script

Merci, Kamaris.

Effectivement bravo cela marche aussi.

Bonne soirée.

Hors ligne