【发布时间】:2018-10-22 07:43:17
【问题描述】:
我使用下面的代码 sn-p :-
command:= exec.Command("./"+order)
out, err := command.Output()
if err != nil {
log.Println(err)
}
fmt.Println(string(out))
这里,“order”是当前目录下名为binary的变量。当我运行此代码时,它不会要求输入并运行二进制文件,直到它打印输出语句结束。如何在运行二进制可执行文件时获取输入?
我也尝试过在 go 中使用 python,但没有效果。
【问题讨论】:
-
你的意思是这样的:stackoverflow.com/questions/10473800/…?它还允许捕获命令的标准输出等
-
我的意思是像执行二进制文件一样询问您的姓名并打印
hello name。在这里,上面的程序不要求输入并打印 hello 并结束。那么如何获取名称的输入? -
您可以传递命令行参数并使用
flag包在子进程中读取它,或者如果您想要动态的交互式输入,您可以挂钩到子进程的标准输入,请参阅:golang.org/pkg/os/exec/#example_Cmd_StdinPipe -
@Not_a_Golfer 我尝试了给定的解决方案,但它不起作用,程序将变为动态,因此它必须是交互式的。还是谢谢!
-
我不明白你的确切问题。您想在命令运行时将您的标准输入连接到命令的标准输入吗?
标签: go executable