GoLang os / exec StdoutPipe有颜色

时间:2017-07-15 10:36:01

标签: go

我正在使用GoLang为 minecraft 服务器控制台创建一个包装器。它使用os / exec来运行服务器,并使用process.StdoutPipe()来实现子进程的实时输出。

但是,由于某种原因,我不能让它显示颜色。当我直接从终端运行服务器时,颜色有效,但是当我从GoLang运行它时它根本不起作用。

当我从GoLang运行时,日志文件上没有颜色代码。但是直接从终端运行它,日志文件绝对搞乱了颜色代码。我真的不明白这是怎么回事。

有什么方法可以解决这个问题吗? 谢谢!

1 个答案:

答案 0 :(得分:4)

解决这个问题的方法是强制使用Minecraft服务器的颜色。这根本不是你的Go程序的问题。命令行程序检测它们是否在交互式终端上运行是非常常见的,并且当它们不通过时,禁用某些功能(例如颜色输出,分页等),假设它们正在通过脚本(就像你的情况一样)。

如果Minecraft服务器没有此选项,您可以fool it into thinking it's running on an interactive terminal