package main; import ( "os/exec" "fmt" "io/ioutil" "bytes" ) func main() { //在环境变量path中查找可执行二进制文件 //返回完整路径或者相对于当前目录的一个相对路径 file, _ := exec.LookPath("go"); fmt.Println(file); //返回一个cmd cmd := exec.Command("go", "version"); //执行命令,并返回标准输出和错误输出 out, _ := cmd.CombinedOutput(); fmt.Println(string(out)); //创建一个cmd cmd2 := exec.Command("ping", "www.baidu.com"); buf := bytes.Buffer{}; //将cmd2的标准输出设置为buf cmd2.Stdout = &buf; //运行命令,阻塞直到完成 cmd2.Run(); fmt.Println(buf.String()); //创建一个cmd cmd3 := exec.Command("ping", "www.baidu.com"); //获取命令在start后标准输出管道 out3, _ := cmd3.StdoutPipe(); //执行命令 cmd3.Start(); //读取管道中所有数据 data3, _ := ioutil.ReadAll(out3); //等待命令执行完成 cmd3.Wait(); fmt.Println(string(data3)); }