【问题标题】:trick console prog to make it think it writes to terminal欺骗控制台 prog 让它认为它写入终端
【发布时间】:2015-05-12 18:02:25
【问题描述】:

许多终端程序的行为会根据 STDOUT 目标(终端、管道或文件)而有所不同。通常他们会去除颜色。其中一些通常有命令行选项来保持颜色或格式或其他任何仅用于直接终端输出的东西。但是这些选项并不总是存在,并且需要时间才能找到它们,因此我需要一种通用的方法来欺骗程序,以便它认为 STDOUT 是终端,而不是管道。如何做到这一点?

【问题讨论】:

  • 你想伪造它,让它相信它一个终端,即使它不是?
  • 宾果游戏,惊人的思维
  • 您首先要知道程序如何确定其标准输出是否为终端。
  • 您还可以研究如何使用分配一个伪终端,并使用它而不是管道作为程序的标准输出。

标签: linux bash terminal console stdout


【解决方案1】:

有几个工具可以做到这一点,它们基本上是为你的命令创建一个 pty。

最有名的大概是expect:http://expect.sf.net

或者,empty: http://empty.sf.net
该页面中有几个示例,请查看。

对于简单的情况,script -c 'mycommand' 可能是一个可行的选择。

还有tmux,它功能强大且非常容易编写脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多