У вас не будет прямого вывода, так как командам требуется некоторое время, прежде чем он запишет в stdout / stderr, поэтому вам нужно просто ждать, пока что-то получится.
Как вы можете это сделать, используя bufio.NewScanner
, вот так:
package main
import (
"bufio"
"fmt"
"os/exec"
"strings"
)
func main() {
args := "get apps"
cmd := exec.Command("ftr", strings.Split(args, " ")...)
cmd.Dir = "./testdata/"
stdout, _ := cmd.StdoutPipe()
cmd.Start()
scanner := bufio.NewScanner(stdout)
scanner.Split(bufio.ScanWords)
for scanner.Scan() {
m := scanner.Text()
fmt.Println(m)
}
cmd.Wait()
}
Если ваша команда пишет в stderr вместо stdout, вам может потребоваться использовать cmd.StderrPipe
вместо cmd.Stdoutpipe
, чтобы получить вывод.