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));
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |