许多终端程序的行为会有所不同,具体取决于STDOUT目的地,终端或管道或文件。通常他们会删除颜色。通常有一些命令行选项可以保留颜色或格式或其他任何仅用于直接终端输出的选项。但是这些选项并不总是存在而且需要时间来找到它们因此我需要一种通用的方法来欺骗程序,以便它认为STDOUT是终端而不是管道。怎么做到这一点?
答案 0 :(得分:1)
有几种工具,它们基本上可以为你的命令创建一个pty。
最着名的可能是expect
:http://expect.sf.net
或者,empty
:http://empty.sf.net
该页面中有几个例子,看看。
对于简单的情况,script -c 'mycommand'
可能是一种可行的选择。
tmux
,功能强大且易于编写脚本。