Czy istnieje sposób, aby zadanie w tle poinformowało terminal, aby wydrukował nowy monit?
Chcę napisać program, którymogą być uruchamiany jako zadanie w tle (tj.my-thing &
), które w razie potrzeby pięknie dostarczą odpowiednie dane wyjściowe.
Jednak z zadaniami w tle, które drukowane są na terminalu, zawsze pojawia się ten irytujący mały postęp:
bash-3.2$ my-thing &▏
bash-3.2$ my-thing &<br>bash-3.2$ -- Hello from my-thing!<br>-- now let me start doing what I do best ...<br>▏
… Zauważmy, że nie mamy teraz monitu przed kursorem, nie wspominając o tym, że istnieje brzydki, błędny monit, w którym mój program wypluł dane wyjściowe, gdy monit został już wydrukowany.
Dlatego chcę trzech rzeczy, z których tylko jedna nie mam pojęcia, jak to zrobić:
Wykryj, czy mój program jest uruchamiany w tle i odpowiednio zmień moje dane wyjściowe / działanie (tj. Wydrukuj mniej bezużyteczne informacje; kolejkuj kolejne informacje, aby były wyprowadzane tylko wtedy, gdy program zostanie ponownie wstawiony; itd.)Usuń komunikat (jeśli już istnieje), gdy nagle wydrukujesz informacje na terminalu, w którym byliśmy umieszczeniPoinformować terminal po skończeniu tego, co drukuję na terminalu, w jakiś sposób zmusza go do ponownego narysowania nowego monitu poniżej treści, którą dodałemTrzeci jest jedynym, którego nie mam absolutnie pojęcia; choć mam dwie inklisy na pozostałe dwa, wszelkie linki lub sugestie byłyby tam docenione.
Równie cenne byłyby nawet linki do dowolnych programów (dowolnego języka / środowiska), które już posiadają tryby, które to obsługują; ponieważ mógłbym próbować odwrócić inżynierię / spelunkować ich implementację.