我在Linux中有一个程序,如果它的stdin / stdout不是TTY(终端设备),它就拒绝运行。是否有一个易于使用的工具,它将创建一个PTY,使用新创建的TTY启动程序,并通过stdin / stdout复制所有数据?
用例不是交互式的,而是脚本的。我正在寻找最轻量级的解决方案,最好不要创建TCP连接,也不需要安装太多其他工具和库。
答案 0 :(得分:31)
unbuffer
,期望(Ubuntu Lucid上的sudo apt-get install expect-dev
)的一部分,可以欺骗程序认为它连接到TTY。
$ tty
/dev/pts/3
$ echo | tty
not a tty
$ echo | unbuffer tty
/dev/pts/11