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