Go语言调用Shell与可执行文件(使用输入输出Pipe)

4月以前  |  阅读数:9 次  |    

使用管道连接到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))
}

相关文章:


SSH 登录失败:Host key verification failed

PHP分页显示制作详细讲解

PHP自定义函数获取搜索引擎来源关键字的方法

将二进制数据转为16进制以便显示

在Zeus Web Server中安装PHP语言支持

让你成为最历害的git提交人

再谈PHP中单双引号的区别详解

PHP实现简单爬虫的方法

php+ajax+json 详解及实例代码

Python 2与Python 3版本和编码的对比

php实现数组中索引关联数据转换成json对象的方法

wget使用技巧

桌面中心(一)创建数据库

PHP设计模式之工厂模式与单例模式

获取IMSI

Java生成UUID

php封装的page分页类完整实例

php数组合并array_merge()函数使用注意事项

Yii2汉字转拼音类的实例代码

getAttribute和getAttributeNode