问题是用户输入的所有命令均呼应两次PTY,因此:
我试图玩CMD的stdin/stdout,包括根本不使用PTY,而是遇到各种奇怪的问题,例如没有命令提示的输出等。它们中的大多数与命令的Stdout性质有关(必须是PTY)。
这是我现在拥有的最好的结果。 但是我确实需要消除命令的过多回声。
// import "golang.org/x/term"
...
defer t.Close()
oldState, err := term.MakeRaw(int(os.Stdin.Fd()))
if err != nil {
return err
}
defer term.Restore(int(os.Stdin.Fd()), oldState)
...