首先建立一个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("%s\n", outputBuf0.String()) }
以上是go如何执行linux命令的详细内容。更多信息请关注PHP中文网其他相关文章!