2010-11-20 7 views
16

Ich habe ein Programm in Linux, das nicht ausgeführt wird, wenn seine Stdin/Stdout kein TTY (Endgerät) ist. Gibt es ein einfach zu bedienendes Tool, das ein PTY erstellt, das Programm mit dem neu erstellten TTY startet und alle Daten über stdin/stdout kopiert?Piping Daten zu Linux-Programm, das ein TTY erwartet (Terminal)

Der Anwendungsfall ist nicht interaktiv, sondern Skripting. Ich suche nach der leichtesten Lösung, vorzugsweise keine TCP-Verbindungen zu erstellen und nicht zu viele andere Tools und Bibliotheken zu installieren.

Antwort

26

unbuffer, Teil von expect (sudo apt-get install expect-dev auf Ubuntu Lucid), kann ein Programm in die Vorstellung täuschen, es ist mit einem TTY verbunden.

$ tty 
/dev/pts/3 
$ echo | tty 
not a tty 
$ echo | unbuffer tty 
/dev/pts/11 
+0

+1 "erwarten" für den Sieg. –

+0

Wirklich? http://packages.ubuntu.com/lucid/i386/expect-dev/filelist –

+0

Ich fand es, danke. – pts