许多终端程序的行为会有所不同,具体取决于 STDOUT 目标(终端、管道或文件)。通常他们会去除颜色。通常有一些命令行选项可以保留颜色或格式或其他仅用于直接终端输出的内容。但这些选项并不总是存在,并且需要时间才能找到它们,因此我需要一种通用方法来欺骗程序,以便它认为 STDOUT 是终端,而不是管道。如何实现这一目标?
最佳答案
有几种工具可以实现此目的,它们基本上为您的命令创建一个 pty。
最著名的可能是expect
:http://expect.sf.net
或者,空
:http://empty.sf.net
该页面中有几个示例,请查看。
对于简单的情况,script -c 'mycommand'
可能是一个可行的替代方案。
还有 tmux
,它功能强大且非常容易编写脚本。
关于linux - 欺骗控制台程序,使其认为它写入终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30198286/