#1 Le 13/08/2014, à 22:22
- DébuNux
lire le terminal en continue j'usquà l'apparition d'un caractère.
Bonjour,
Je cherche à lire en continue le flux de sortie d'une commande pour capturer un caractère qui apparait au bout
d'un certain temps par la commande pour ensuite faire une action.
En faite je lance une commande qui me renvoie au bout de quelque minutes des étoiles sur le terminal et
à ce moment là je voudrais que mon script détecte ses étoiles et éffectue une action. comment faire
ps: je suis débutant merci.
Hors ligne
#2 Le 13/08/2014, à 22:43
- Kooothor
Re : lire le terminal en continue j'usquà l'apparition d'un caractère.
Salut,
Alors lire un flux, ça c'est facile :
tail -f
Sinon sans code example, c'est pas facile de t'aider.
Et sois sûr de savoir ce que c'est qu'un pipe, parce que c'est très utile !
@+
~ktr
Hors ligne
#3 Le 13/08/2014, à 22:52
- Watael
Re : lire le terminal en continue j'usquà l'apparition d'un caractère.
salut,
la boucle simule le programme d'affichage
$ n=0
$ a=(a b c d e f g h i \* j k l m )
$ while sleep 1; do test "$n" -lt ${#a[@]} && echo "${a[@]:n++:1}" || break; done | { read -d '*' bla; echo "$bla - fini! ";}
quelque temps plus tard, cela affiche ceci:
a
b
c
d
e
f
g
h
i - fini!
Dernière modification par Watael (Le 13/08/2014, à 22:52)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 13/08/2014, à 23:07
- pingouinux
Re : lire le terminal en continue j'usquà l'apparition d'un caractère.
Bonsoir,
Autre façon de faire
for i in 1 2 3 4 '*' 5 6 7;do echo "$i";sleep 1;done|sed '/\*/q'; echo "J'ai vu l'étoile"
Hors ligne
#5 Le 15/08/2014, à 03:55
- DébuNux
Re : lire le terminal en continue j'usquà l'apparition d'un caractère.
Ok ça marche Merci.
mais maintenant j'essaie de terminer la commande avec kill ou killall mais ça ne marche pas...
Je voudrais arrêter le processus en utilisant son nom mais je n'y arrive pas...
je vous montre un exemple de la façon dont je procède, dans cette exemple j'essaie de terminer find.
find abc /
killall find
j'ai éssayé aussi kill find ou kill -TERM find etc... sans succés...
Hors ligne
#6 Le 15/08/2014, à 06:37
- nesthib
Re : lire le terminal en continue j'usquà l'apparition d'un caractère.
@DébuNux : si tu expliquais en détail ce que tu cherches à faire, en commençant par détailler ce qu'est ce script/programme qui affiche des étoiles ?
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#7 Le 15/08/2014, à 08:00
- tiramiseb
Re : lire le terminal en continue j'usquà l'apparition d'un caractère.
find abc /
killall find
En dehors du fait que la commande "find abc /" est mal formée, là tu attends la fin de ce "find" pour exécuter ton "killall".
Comme nesthib, j'aimerais bien en savoir plus sur ce que tu essaies de faire pour pouvoir t'aider : car là avec tes explications vagues, on ne comprend pas bien ce que tu veux faire.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#8 Le 15/08/2014, à 22:16
- DébuNux
Re : lire le terminal en continue j'usquà l'apparition d'un caractère.
Merci à tous ça fonctionne.
En effet comme disait tiramiseb le script attendez la fin du find pour éffectuer un killall.
Hors ligne
#9 Le 16/08/2014, à 05:00
- nesthib
Re : lire le terminal en continue j'usquà l'apparition d'un caractère.
Et par curiosité, tu ne voudrais pas expliquer à quoi sert ce script ?
J'ai comme l'impression qu'il devrait y avoir un moyen plus simple de réaliser ce que cherches à faire.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne