我有一个应该调用 ruby 脚本的 go 程序。
我有一个runCommand功能:
func runCommand(cmdName string, arg ...string) {
cmd := exec.Command(cmdName, arg...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
err = cmd.Run()
if err != nil {
fmt.Printf("Failed to start Ruby. %s\n", err.Error())
os.Exit(1)
}
}
我这样调用它:
runCommand("ruby", "-e", "require 'foo'")
它适用于大多数情况,除非gets子进程中有一个或任何类似的操作需要暂停输入。
我试过设置cmd.Stdin = os.Stdin,但它不等待输入。
我究竟做错了什么?
相关分类