我正在使用下面的代码片段:-
command:= exec.Command("./"+order)
out, err := command.Output()
if err != nil {
log.Println(err)
}
fmt.Println(string(out))
这里,“order”是当前目录下名为binary的变量。当我运行这段代码时,它不要求输入并运行二进制文件直到它打印输出语句结束。如何在运行二进制可执行文件时获取输入?
我也试过在 go 中使用 python 但没有效果。
最佳答案
此代码询问您的姓名,然后将其传递给 ./hello
二进制文件,该二进制文件读取第一个参数并输出第一个参数。
package main
import (
"bufio"
"fmt"
"log"
"os"
"os/exec"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("What's your name: ")
name, _ := reader.ReadString('\n')
command := exec.Command("./hello", name)
out, err := command.Output()
if err != nil {
log.Println(err)
}
fmt.Println(string(out))
}
你好.go:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(fmt.Sprintf("hello %s", os.Args[1]))
}
关于go - 在 Go 中执行二进制时获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52924492/