golang执行本地命令

469 阅读1分钟

os/exec包下有各种命令行相关的便捷命令

执行命令行

package main

import (
	"fmt"
	"os/exec"
)

func main() {
        buf,err:=exec.Command("ls","-al").CombinedOutput()
	if err != nil {
		fmt.Println(err.Error())
	}
	fmt.Println(string(buf))
}

启动cmd并等待

比如启动火狐浏览器,只需要start(),不需要等待进程结束。

package main

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

func main() {
        cmd:=exec.Command("/usr/bin/firefox")
	cmd.Stdout=os.Stdout
	cmd.Stderr=os.Stderr
        // 只启动火狐,不等待火狐退出即执行下一句
	err:=cmd.Start()
	if err != nil {
		fmt.Println(err.Error())
	}
        // 做点其他事情
        // ...
        
        // 等待火狐退出
	err=cmd.Wait()
	if err != nil {
		fmt.Println(err.Error())
	}

}