В простом приложении Unix-shell, как вы будете печатать на стандартный вывод, не нарушая ожидающий пользовательский ввод.
например. Ниже приведено простое приложение на Python, которое поддерживает ввод данных пользователем. Нить, работающая в фоновом режиме, печатает счетчик каждую 1 секунду.
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
Обратите внимание, как поток манипулирует отображаемым пользовательским вводом при его вводе (например, hell1o wo2rld3). Как бы вы обошли это, чтобы оболочка записывала новую строку, сохраняя строку, набранную пользователем в данный момент?