go如何执行linux命令

首先建立一个exec.Cmd类型的值,然后执行这个类型的Start方法就可以启动命令了,获取此命令的输出管道,这个管道类型是io.ReadCloser,通过管道获取输出内容。

package main  import (   "bytes"   "fmt"   "io"   "os/exec" )   func main() {   cmd0 := exec.Command("echo", "-n", "my first command")   //启动命令   if err := cmd0.Start(); err != nil {   fmt.Printf("command can not start %s n", err)   return   }    //获取输出管道   stdout0, err := cmd0.StdoutPipe()   if err != nil {   fmt.Printf("couldn't stdout pipe for command %s n", err)   return   }   var outputBuf0 bytes.Buffer   for {   tempOutput := make([]byte, 2048)   n, err := stdout0.Read(tempOutput)   if err != nil {     if err == io.EOF {     break     } else {     fmt.Printf("couldn't read data from pip %s n", err)     return     }   }   if n > 0 {     outputBuf0.Write(tempOutput[:n])   }   }   fmt.Printf("%sn", outputBuf0.String()) }

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享