先建立一個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中文網其他相關文章!