os/exec StdoutPipe 带颜色

Lol*_*lly 1 go

我做了一个包装的Minecraft与围棋服务器控制台。它使用 os/exec 运行服务器和 process.StdoutPipe() 以获取子进程的实时输出。

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

更重要的是,当我从 Go 运行它时,日志文件上也没有颜色代码。但是直接从终端运行它,日志文件完全被颜色代码弄乱了。我真的不明白这是怎么发生的。

有没有什么办法解决这一问题?
谢谢!

Fli*_*mzy 5

解决这个问题的方法是从我的世界服务器强制颜色。你的 Go 程序根本没有问题。命令行程序通常会检测它们是否正在交互式终端上运行,并在没有运行时禁用某些功能(例如颜色输出、分页等),假设它们是通过脚本(确实如此,就您而言)。

如果我的世界服务器没有这个选项,你可能会误以为它是在交互式终端上运行的