我想从 Go 执行 perforce 命令行“p4”来完成登录工作。“p4 login”要求用户输入密码。
如何运行需要用户在 Go 中输入的程序?
以下代码不起作用。
err = exec.Command(p4cmd, "login").Run()
if err != nil {
log.Fatal(err)
}
我想从 Go 执行 perforce 命令行“p4”来完成登录工作。“p4 login”要求用户输入密码。
如何运行需要用户在 Go 中输入的程序?
以下代码不起作用。
err = exec.Command(p4cmd, "login").Run()
if err != nil {
log.Fatal(err)
}
从os/exec.Command文档:
// Stdin specifies the process's standard input. If Stdin is
// nil, the process reads from the null device (os.DevNull).
Stdin io.Reader
在执行命令之前设置命令的 Stdin 字段。
// To run any system commands. EX: Cloud Foundry CLI commands: `CF login`
cmd := exec.Command("cf", "login")
// Sets standard output to cmd.stdout writer
cmd.Stdout = os.Stdout
// Sets standard input to cmd.stdin reader
cmd.Stdin = os.Stdin
cmd.Run()