代码之家  ›  专栏  ›  技术社区  ›  pts

通过管道将数据传输到需要TTY(终端)的Linux程序

  •  19
  • pts  · 技术社区  · 14 年前

    我在Linux中有一个程序,如果它的stdin/stdout不是tty(终端设备),它将拒绝运行。是否有一个易于使用的工具可以创建一个pty,用新创建的tty启动程序,并通过stdin/stdout复制所有数据?

    用例不是交互式的,而是脚本。我正在寻找最轻量的解决方案,最好不要创建TCP连接,也不需要安装太多其他工具和库。

    1 回复  |  直到 13 年前
        1
  •  31
  •   pts    14 年前

    unbuffer ,Expect的一部分( sudo apt-get install expect-dev 在Ubuntu Lucid上),可以愚弄程序,使其认为它与TTY相连。

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