如何在Go中获得“实时”控制台输出?

时间:2018-01-14 20:57:54

标签: node.js go stdout


在Golang中相当于什么。基本上我希望能够执行一个命令,在它出来时将其分段。这是我目前在Node.js中所拥有的一个例子。

var exec = require('child_process').exec;
exec('ls').stdout.on('data', data => {
    console.log(data); 
});

意图:目的是运行一个命令,然后使用websockets直接输出它作为服务器。

1 个答案:

答案 0 :(得分:0)

您可以在此处查看:https://golang.org/src/os/exec/example_test.go

管道标准输出流的示例:

package main

import (
    "bufio"
    "fmt"
    "os/exec"
)

func main() {
    cmd := exec.Command("ls")
    stdout, _ := cmd.StdoutPipe()
    cmd.Start()

    scanner := bufio.NewScanner(stdout)
    scanner.Split(bufio.ScanWords)
    for scanner.Scan() {
        m := scanner.Text()
        fmt.Println(m)
    }
    cmd.Wait()
}