Передача данных в программу Linux, которая ожидает TTY (терминал) - PullRequest
20 голосов
/ 20 ноября 2010

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

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

1 Ответ

32 голосов
/ 20 ноября 2010

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
...