2010-11-20 11 views
16

Tengo un programa en Linux que se niega a ejecutar si su stdin/stdout no es un TTY (dispositivo terminal). ¿Existe alguna herramienta fácil de usar que cree un PTY, inicie el programa con el TTY recién creado y copie todos los datos a través de stdin/stdout?Tubería de datos al programa Linux que espera un TTY (terminal)

El caso de uso no es interactivo, sino scripting. Estoy buscando la solución más liviana, preferiblemente no creando conexiones TCP, y no requiriendo muchas otras herramientas y bibliotecas para ser instaladas.

Respuesta

26

unbuffer, parte de lo esperado (sudo apt-get install expect-dev en Ubuntu Lucid), puede engañar a un programa haciéndole creer que está conectado a un TTY.

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

+1 'expect' for the win. –

+0

¿De verdad? http://packages.ubuntu.com/lucid/i386/expect-dev/filelist –

+0

Encontrado, gracias. – pts

Cuestiones relacionadas