在Go中执行二进制文件时获取输入

时间:2018-10-22 07:43:17

标签: go executable

我正在使用以下代码段:-

command:= exec.Command("./"+order)

out, err := command.Output()
if err != nil {
   log.Println(err)
}

fmt.Println(string(out))

此处,“ order”是当前目录中二进制名称的变量。当我运行此代码时,它不会要求输入,并一直运行到二进制文件,直到其打印输出语句结束为止。在运行二进制可执行文件时如何获取输入?

我也尝试过在go中使用python,但没有效果。

1 个答案:

答案 0 :(得分:0)

此代码要求您输入名称,然后将其传递给b1 = Button(root, text='add', command = lambda: abc(a,b)) 二进制文件,该文件将读取第一个参数并输出第一个参数。

./hello

hello.go:

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))
}