2008-09-15 4 views
4

Gibt es ein Terminalprogramm, das den Unterschied zwischen Eingabe, Standardausgabe, Fehlerausgabe, Eingabeaufforderung und vom Benutzer eingegebenen Befehlen anzeigt? Es sollte auch angezeigt werden, wenn eine Standardeingabe erforderlich ist, anstatt einen Befehl auszuführen.Gibt es ein Terminalprogramm, das zwischen Eingabe, Ausgabe und Befehlen unterscheidet?

Ein Weg wäre, jedes anders hervorzuheben. Der Cursor könnte die Farbe ändern, abhängig davon, ob er auf einen Befehl gewartet, einen Befehl ausgeführt oder auf die Standardeingabe gewartet hat.

Ein anderer Weg wäre, 3 Rahmen zu haben - ein großer Rahmen oben für die Ausgabe (einschließlich Eingabeaufforderung und Befehle), ein kleiner Rahmen unten für Standardeingabe und ein einzeiliger Rahmen unten für Befehlszeileneingabe. Dies würde möglicherweise sogar erlauben, einen anderen Befehl auszuführen, um eine Eingabe bereitzustellen, während der vorherige Befehl noch auf eine Standardeingabe wartet.

Von http://jamesjava.blogspot.com/2007/09/terminal-window-with-3-frames.html

Antwort

1

Hotwire ein guter Kandidat sein könnte, aber es ist nicht so, aus der Box zu tun AFAIK

0

Vorerst scheint es, dass es kein solches Programm.

0

Mein Programm gush (Graphical User SHell) macht einen Teil davon. Es verwendet verschiedene Farben für Befehle und Programm stdin/stdout/stderr. Beachten Sie, dass die traditionelle Trennung von Shell und Terminal diese unmöglich macht, da die Schnittstelle zwischen ihnen eine alte serielle Terminalverbindung modelliert und daher nur einen einzigen Eingang und einen einzigen Ausgangskanal hat. Ich komme um dieses Problem herum, indem ich Schale und Terminal in einem Programm kombiniere.

Es wäre schön, auch angeben, wenn ein Programm auf eine Eingabe wartet, aber ich glaube nicht, dass es eine Möglichkeit, dies zu erkennen, es sei denn, Sie die Systemaufrufe des Kindes Programm verfolgt zu erkennen, wenn es versucht, lese stdin. Für interaktive Programme können Sie erraten, dass, wenn die letzte Ausgabe nicht mit 0 endete, es wahrscheinlich zur Eingabe aufgefordert wird, aber dies würde nicht arbeiten für nicht interaktive Programme, z. sed.