2010-11-20 10 views
16

Ho un programma in Linux che si rifiuta di eseguire se il suo stdin/stdout non è un TTY (dispositivo terminale). C'è uno strumento facile da usare che creerà un PTY, avvia il programma con il TTY appena creato e copia tutti i dati su stdin/stdout?Piping dati al programma Linux che si aspetta un TTY (terminale)

Il caso d'uso non è interattivo, ma script. Sto cercando la soluzione più leggera, preferibilmente non creando connessioni TCP, e non richiedendo troppi altri strumenti e librerie da installare.

risposta

26

unbuffer, parte del previsto (sudo apt-get install expect-dev su Ubuntu Lucid), può ingannare un programma in modo che possa essere collegato a un TTY.

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

+1 'aspettarsi' per la vittoria. –

+0

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

+0

Trovato, grazie. – pts

Problemi correlati