linux - 欺骗控制台程序,使其认为它写入终端

标签 linux bash terminal console stdout

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

最佳答案

有几种工具可以实现此目的,它们基本上为您的命令创建一个 pty。

最著名的可能是expect:http://expect.sf.net

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

对于简单的情况,script -c 'mycommand' 可能是一个可行的替代方案。

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

关于linux - 欺骗控制台程序,使其认为它写入终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30198286/

相关文章:

linux - 从用户终端而不是 root 运行 Eclipse 时出错

linux - 使用 shell 脚本从特定日志文件创建 CSV 文件

bash - 在 bash 脚本中使用 expr 时 hadoop 流式传输出错

bash - 是否有 bash(或任何其他 shell)脚本来检测当前终端是否支持 unicode 字符?

linux - 图形对于开罗渲染器位图来说太大了

bash - 如何忽略 bash 中 diff 的输出

batch-file - 使用windows终端连接COM口

terminal - VS Code 终端(选中)文本背景色

bash - PS1 换行有颜色问题

c - 在c linux中重启父进程