使用golang运行命令行?

Mat*_*ood 3 terminal command-line go gulp

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

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

gulp serv.dev
Run Code Online (Sandbox Code Playgroud)

我怎么能从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`
}
Run Code Online (Sandbox Code Playgroud)

Leo*_*rea 10

您正在寻找的是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)
    }
}
Run Code Online (Sandbox Code Playgroud)


jlh*_*ora 5

看一下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)
}
Run Code Online (Sandbox Code Playgroud)