GO语言--执行命令行

/ go / 没有评论 / 1852浏览

GO语言--执行命令行

1. 使用Command生成Cmd结构体

import (
	"os/exec"
)

cmd := exec.Command("ls", "-l")

2.执行命令

两种方式

1. func (*Cmd) Run

执行命令并等待命令执行结束

func main() {
	cmd := exec.Command("tr","a-z","A-Z")
	cmd.Stdin = strings.NewReader("abcdefg")
	var out bytes.Buffer
	cmd.Stdout = &out
	err := cmd.Run()
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(out.String())

2. func (*Cmd) Start

执行命令但不等待执行结果 使用wait 等待执行结束

func main() {
	cmd := exec.Command("sleep", "5")
	err := cmd.Start()
	if err != nil {
		log.Fatal(err)
	}
	log.Printf("Waiting for command to finish...")
	err = cmd.Wait()
	log.Printf("Command finished with error: %v", err)
}