Go 带颜色的os/exec标准管道

Go 带颜色的os/exec标准管道,go,Go,我正在用Go为minecraft服务器控制台制作包装。它使用os/exec来运行服务器和进程。StdoutPipe()用于子进程的实时输出 但是,由于某些原因,我无法让它显示颜色。当我直接从终端运行服务器时,颜色会起作用,但当我从Go运行服务器时,颜色根本不起作用 更重要的是,当我从Go运行它时,日志文件上也没有颜色代码。但是直接从终端运行它,日志文件完全被颜色代码弄乱了。我真的不明白这是怎么发生的 有没有办法解决这个问题? 谢谢 解决这个问题的方法是从minecraft服务器强制使用颜色。这对

我正在用Go为minecraft服务器控制台制作包装。它使用os/exec来运行服务器和进程。StdoutPipe()用于子进程的实时输出

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

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

有没有办法解决这个问题?

谢谢

解决这个问题的方法是从minecraft服务器强制使用颜色。这对你的围棋计划一点问题都没有。命令行程序通常会检测它们是否在交互终端上运行,并在不在交互终端上运行时禁用某些功能(如颜色输出、分页等),前提是这些功能是通过脚本传递的(在您的情况下确实如此)


如果minecraft服务器没有此选项,您可以。

解决此问题的方法是从minecraft服务器强制使用颜色。这对你的围棋计划一点问题都没有。命令行程序通常会检测它们是否在交互终端上运行,并在不在交互终端上运行时禁用某些功能(如颜色输出、分页等),前提是这些功能是通过脚本传递的(在您的情况下确实如此)


如果minecraft服务器没有此选项,您可以。

当然会发生,因为minecraft检测到标准输出不是真正的控制台,因此它会去除颜色,这样您可以将输出重定向到没有颜色的文件。我不确定你应该如何继续在围棋,应该有一个选项来定义,或一个环境来设置调用minecraft程序。肯定会发生,因为minecraft检测到标准输出不是一个真正的控制台,所以它剥离颜色,这样你可以重定向到一个没有颜色的文件输出。我不知道你应该如何继续在围棋,应该有一个选项来定义,或一个环境设置时调用minecraft程序。嗨@Flimzy,谢谢你的回应。我试图使用
脚本
,但出于某种原因,它显示
bash:5:command未找到
。当然,当我从
exec.Command
运行它时;但是当我直接从终端运行它时,它就工作了。知道为什么会这样吗?嗨,事实上我让它工作了!!!:我用了你说的关于愚弄它的话,以为它是在一个活动终端上运行的,我对假的tty做了大量的研究。几个小时后,我发现了这个神奇的资源:一切都很好!再次感谢你,没有你我做不到!你好@Flimzy,谢谢你的回复。我试图使用
脚本
,但出于某种原因,它显示
bash:5:command未找到
。当然,当我从
exec.Command
运行它时;但是当我直接从终端运行它时,它就工作了。知道为什么会这样吗?嗨,事实上我让它工作了!!!:我用了你说的关于愚弄它的话,以为它是在一个活动终端上运行的,我对假的tty做了大量的研究。几个小时后,我发现了这个神奇的资源:一切都很好!再次感谢你,没有你我做不到!