许多终端程序的行为会有所不同,具体取决于终端,管道或文件。通常他们会去除颜色。通常,其中某些人可以保留颜色或格式化或仅用于直接终端输出的其他任何内容。但是这些选项并不总是存在,并且需要时间才能找到它们,因此我需要一种通用的方法来欺骗程序,以便认为Stdout是终端,而不是管道。如何实现这一目标?
有几种工具为此,它们基本上为您的命令创建一个PTY。
最著名的可能是 expect
:http://expect.sf.net
或者,empty
:http://ementy.sf.net
该页面中有几个示例,看看
对于简单的情况,script -c 'mycommand'
可能是可行的替代方案。
和tmux
,功能强大且易于脚本。