package mainimport "fmt"import "io/ioutil"import "os/exec"func main() { dateCmd := exec.Command("date") dateOut, err := dateCmd.Output() if err != nil { panic(err) } fmt.Println("> date") fmt.Println(string(dateOut)) grepCmd := exec.Command("grep", "hello") grepIn, _ := grepCmd.StdinPipe() grepOut, _ := grepCmd.StdoutPipe() grepCmd.Start() grepIn.Write([]byte("hello grep\ngoodbye grep")) grepIn.Close() grepBytes, _ := ioutil.ReadAll(grepOut) grepCmd.Wait() fmt.Println("> grep hello") fmt.Println(string(grepBytes)) lsCmd := exec.Command("bash", "-c", "ls -a -l -h") lsOut, err := lsCmd.Output() if err != nil { panic(err) } fmt.Println("> ls -a -l -h") fmt.Println(string(lsOut)) }
执行结果:
> date 2015年 1月23日 星期五 21时29分39秒 CST > grep hello hello grep > ls -a -l -h total 32 drwxr-xr-x 6 itfanr admin 204B 1 23 21:29 . drwxrwxrwx 6 itfanr admin 204B 12 27 09:52 .. -rw-rw-r--@ 1 itfanr admin 721B 1 23 21:29 excute.go drwxr-xr-x 13 itfanr admin 442B 1 22 21:06 github.com
参考:
https://gobyexample.com/spawning-processes
http://tobegit3hub1.gitbooks.io/understanding-linux-processes/content/go_example/spawn.html
3. https://github.com/mmcgrana/gobyexample