加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang语言中os/exec包的学习与使用

发布时间:2020-12-16 18:03:01 所属栏目:大数据 来源:网络整理
导读:package main;import ("os/exec""fmt""io/ioutil""bytes")func main() {//在环境变量path中查找可执行二进制文件//返回完整路径或者相对于当前目录的一个相对路径file,_ := exec.LookPath("go");fmt.Println(file);//返回一个cmdcmd := exec.Command("go","v
package main;

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

func main() {
	//在环境变量path中查找可执行二进制文件
	//返回完整路径或者相对于当前目录的一个相对路径
	file,_ := exec.LookPath("go");
	fmt.Println(file);

	//返回一个cmd
	cmd := exec.Command("go","version");
	//执行命令,并返回标准输出和错误输出
	out,_ := cmd.CombinedOutput();
	fmt.Println(string(out));

	//创建一个cmd
	cmd2 := exec.Command("ping","www.baidu.com");
	buf := bytes.Buffer{};
	//将cmd2的标准输出设置为buf
	cmd2.Stdout = &buf;
	//运行命令,阻塞直到完成
	cmd2.Run();
	fmt.Println(buf.String());

	//创建一个cmd
	cmd3 := exec.Command("ping","www.baidu.com");
	//获取命令在start后标准输出管道
	out3,_ := cmd3.StdoutPipe();
	//执行命令
	cmd3.Start();
	//读取管道中所有数据
	data3,_ := ioutil.ReadAll(out3);
	//等待命令执行完成
	cmd3.Wait();
	fmt.Println(string(data3));
}

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读