En bash, j'ai une commande en cours d'exécution dans l'écran qui est effectivement
while true
do
echo $RANDOM
sleep 1
done
Le résultat est:
12396
19683
31641
...
Je voudrais canaliser cela dans quelque chose comme grep / awk et je correspond à un modèle spécifique, tel que 12345
, je veux une commande à exécuter.
Je ne veux pas capturer le résultat complet de la commande en cours d'exécution - elle risque de s'exécuter très longtemps avant qu'une correspondance ne soit trouvée et je ne souhaite pas gaspiller de l'espace sur la machine.
Cela peut-il être fait facilement en Bash?
Dans un monde idéal, j'aimerais également que la sortie continue à être imprimée sur le terminal, afin que je puisse télécommander et surveiller la sortie moi-même, mais ce n'est pas strictement nécessaire.
linux
command-line
bash
grep
monitoring
Dave Mankoff
la source
la source
</dev/null
nécessaire, il partagerait le même stdin que le tee? Il semble que tout le temps et le test obtiennent l’entrée en premier, mais je ne suis pas trop sûr de ce qui se passe avec les substitutions de processus (ou ce qui se passe s’ilanother_command
prend beaucoup de temps et que lesfeeding_script
données sont sauvegardées)another_command
pouvait se nourrir destdin
(sans redirection), il serait alors en mesure de consommer n'importe quel nombre de lignes qui suivent le déclenchement12345
. Ces lignes n'iraient jamaiswhile read …
. J'ai supposé qu'ils devraient tous y aller et être testés. Mais si l'idée est de détecter12345
comme un en- tête qui précède les données qui doivent aller àanother_command
, puis</dev/null
est faux.