Go語言調用Shell與可執行文件(使用輸入輸出Pipe)

3年以前  |  閱讀數:124 次  |    

使用管道連接到grep命令的標準輸入,過濾包含test的字符串,并使用管道連接標準輸出。

package main

import (
    "fmt"
    "io/ioutil"
    "os/exec"
)

func main(){
    cmd := exec.Command("/bin/bash", "-c", "grep test")

    stdin, _ := cmd.StdinPipe()
    stdout, _ := cmd.StdoutPipe()

    if err := cmd.Start(); err != nil{
        fmt.Println("Execute failed when Start:" + err.Error())
        return
    }

    stdin.Write([]byte("go text for grep\n"))
    stdin.Write([]byte("go test text for grep\n"))
    stdin.Close()

    out_bytes, _ := ioutil.ReadAll(stdout)
    stdout.Close()

    if err := cmd.Wait(); err != nil {
        fmt.Println("Execute failed when Wait:" + err.Error())
        return
    }

    fmt.Println("Execute finished:" + string(out_bytes))
}

相關文章:

18禁止午夜福利体验区,人与动人物xxxx毛片人与狍,色男人窝网站聚色窝,女生把筷子放屁眼里,国产精品久久久,国产日产欧洲无码视频