Передача данных в программу Linux, которая ожидает TTY (терминал)

У меня есть программа в Linux, которая отказывается запускать, если ее stdin/stdout не является TTY (терминальное устройство). Есть ли простой в использовании инструмент, который создаст PTY, запустит программу с вновь созданным TTY и скопирует все данные по stdin/stdout?

Вариант использования не является интерактивным, а создает скрипты. Я ищу наиболее легкое решение, предпочтительно не создавая TCP-соединения, и не требуя установки большого количества других инструментов и библиотек.

Ответы

Ответ 1

unbuffer, часть ожидания (sudo apt-get install expect-dev на Ubuntu Lucid), может обмануть программу, думая, что она подключена к TTY.

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