Принимая вход при выполнении бинарного в Go - PullRequest
0 голосов
/ 22 октября 2018

Я использую приведенный ниже фрагмент кода: -

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

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

fmt.Println(string(out))

здесь, "order" - это переменная с именем двоичного файла в текущем каталоге.Когда я запускаю этот код, он не запрашивает ввод и не проходит через двоичный файл до конца его вывода оператор вывода.Как получить ввод для моего двоичного исполняемого файла при его запуске?

Я также пытался использовать python в go, но безрезультатно.

1 Ответ

0 голосов
/ 22 октября 2018

Этот код запрашивает ваше имя и затем передает его в ./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))
}

hello.go:

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println(fmt.Sprintf("hello %s", os.Args[1]))
}
...