2013-02-25 7 views
2

J'imprime une barre de progression dans bash mais elle "casse" lorsque l'utilisateur appuie sur une touche quelconque. Je voudrais soit rediriger stdin ou bloquer la saisie au clavier mais je n'ai pas été en mesure de le faire. Ceci est mon code (un petit extrait du code complet)comment rediriger stdin ou bloquer les entrées du clavier?

#!/usr/bin/env bash 
while [[ true ]]; do 
echo -n "#" && 0> /dev/null 
sleep 1 
done 

toute aide sera très apprécier :-)

+0

Ne vous inquiétez pas pour ça. Chaque programme que j'ai utilisé qui a une barre de progression "se brise" de la même manière. Ce n'est pas quelque chose que vous devriez essayer d'empêcher; c'est la nature des programmes terminaux. –

+0

merci pour les heads-up, je sais que ce n'est pas un gros problème et je devrais me concentrer sur une autre partie de mon script, mais disons que je suis un perfectionniste et je voudrais le réparer :-p –

+1

Ce n'est pas cassé, il n'y a rien à réparer. Tu perds ton temps. –

Répondre

0

Ansgar est correcte. Vous pouvez vous amuser avec la redirection de stdin, mais je ne suis pas sûr que cela aidera, selon votre définition, vos efforts de script. Voici quelques tentatives qui vont dans la direction que vous semblez penser est correct:

retty:

http://pasky.or.cz/dev/retty/ 

reptyr:

http://blog.nelhage.com/2011/01/reptyr-attach-a-running-process-to-a-new-terminal/ 

jouer avec ces pendant un certain temps, alors pourquoi Ansgar a droit de cela, IMO. Ou peut-être que vous pourriez penser que c'est bon.

Questions connexes