我想您可以
bytes.Buffer为此使用a 。像这样:
login := exec.Command(cmd, "login")buffer := bytes.Buffer{}buffer.Write([]byte("usernamenpasswordn"))login.Stdin = &bufferlogin.Stdout = os.Stdoutlogin.Stderr = os.Stderrerr := login.Run()if err != nil { fmt.Fprintln(os.Stderr, err)}诀窍是,
stdin它只是一个char缓冲区,并且在读取凭据时,它只会读取chars直到遇到一个
n字符(或可能是
nr)。因此,您可以预先将它们写入缓冲区,然后将缓冲区直接输入命令。



