Dans une application Unix-shell de base, comment imprimer sur stdout sans perturber les entrées utilisateur en attente.Impression de l'application Stdout dans une ligne de commande sans écraser l'entrée utilisateur en attente
par exemple. Voici une application Python simple qui fait écho à l'utilisateur. Un fil tournant en arrière-plan imprime un compteur toutes les secondes.
import threading, time
class MyThread(threading.Thread):
running = False
def run(self):
self.running = True
i = 0
while self.running:
i += 1
time.sleep(1)
print i
t = MyThread()
t.daemon = True
t.start()
try:
while 1:
inp = raw_input('command> ')
print inp
finally:
t.running = False
Notez comment le fil substantype l'entrée d'utilisateur affiché comme on tape le (par exemple hell1o wo2rld3). Comment travailleriez-vous autour de cela, de sorte que le shell écrit une nouvelle ligne tout en préservant la ligne sur laquelle l'utilisateur tape actuellement?