在php中使用popen
时,是否有办法保留程序可能生成的彩色输出?有没有办法告诉shell打印所有颜色转义序列,而不是解析它们?
答案 0 :(得分:2)
这取决于您呼叫的节目。通常,如果程序支持彩色输出,它会询问操作系统,“我在终端上运行吗?”如果是,则输出颜色代码。如果没有,它就不会。如果你通过popen()
运行该程序,那么操作系统会说“不,你没有在终端上运行”,程序会选择不输出颜色代码(因为它们会在捕获的输出中混淆) )。
即使没有将输出写入终端,某些程序也可以选择强制输出颜色代码。但是,如果程序还没有办法,那么就不能在外部强制执行。