使用golang运行命令行?

时间:2015-07-31 02:11:08

标签: command-line go terminal gulp

我只是在玩golang。我很好奇我怎么能从go运行gulpfile任务?

从典型终端运行的Gulp任务:

gulp serv.dev

我如何从golang运行这一简单的代码:

package main
import (
    "net/http"
    "github.com/julienschmidt/httprouter"
    "fmt"
)

func main() {
    //what do I put here to open terminal in background and run `gulp serv.dev`
}

3 个答案:

答案 0 :(得分:8)

您正在寻找的是exec.Command

您几乎想要产生一个将运行gulp任务的流程。

这可以这样做:

package main

import (
    "os/exec"
)

func main() {
    cmd := exec.Command("gulp", "serv.dev")
    if err := cmd.Run(); err != nil {
        log.Fatal(err)
    }
}

答案 1 :(得分:4)

看看exec。对于您的用例:

package main
import (
    "net/http"
    "github.com/julienschmidt/httprouter"
    "fmt"
    "os/exec"
    "log"
)

func main() {
    out, err := exec.Command("gulp", "serv.dev").Output()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("The date is %s\n", out)
}

答案 2 :(得分:2)

您很可能需要exec package

cmd := exec.Command("gulp", "serv.dev")
err := cmd.Run()

看一下exec.Command的例子。他们解释了如何传递参数和读取输出。