有没有一种方法可以通过库调用从另一个Go程序中以编程方式调用Go工具(如go build),并获得比命令行调用的文本输出更结构化的输出?
go build
93ze6v8z1#
如果您尝试以编程方式运行build,也可以使用os/exec包。
os/exec
func runBuild() { cmd := exec.Command("go", "build", "./main.go") err := cmd.Run() if err != nil { log.Fatal(err) } }
你也可以通过其他旗帜。例如:buildmode标志
cmd := exec.Command("go", "build", "-buildmode=plugin", "./main.go")
参考:https://golang.org/pkg/os/exec/
3yhwsihp2#
在另一个go程序中,可以使用os/exec包执行控制台命令,如下所示:
func main (){ cmd := exec.Command("go run lib/main.go") if err := cmd.Run(); err != nil{ log.Fatal(err) } }
但我不认为这是非常有用的。
2条答案
按热度按时间93ze6v8z1#
如果您尝试以编程方式运行build,也可以使用
os/exec
包。你也可以通过其他旗帜。例如:buildmode标志
参考:https://golang.org/pkg/os/exec/
3yhwsihp2#
在另一个go程序中,可以使用
os/exec
包执行控制台命令,如下所示:但我不认为这是非常有用的。