首先建立一個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