os/exec 包详解

os/exec 包提供了执行linux命令的相关接口,主要有如下:

//这个函数主要是用来查询可执行二进制文件的路径
func LookPath(file string) (string, error)

//这个函数主要是用来初始化一个Cmd指针,Path和Args按参数初始化,其他字段执行默认初始化
//初始化后的Cmd用于后续执行run,start等函数
func Command(name string, arg ...string) *Cmd

//这个函数主要是执行*Cmd中的命令,把执行结果和错误合并到byte数组中
func (c *Cmd) CombinedOutput() ([]byte, error)

//这个函数主要是执行*Cmd中的命令,返回执行结果,不包含错误信息
func (c *Cmd) Output() ([]byte, error)

//这个函数主要是执行*Cmd中的命令,并且会等待命令执行完成,如果命令执行不成功,则返回错误信息
func (c *Cmd) Run() error

//这个函数主要是执行*Cmd中的命令,只是让命令开始执行,并不会等待命令执行完。
func (c *Cmd) Start() error

//这个函数主要是用于连接到命令启动时错误标准输出的管道,命令结束时,管道会自动关闭
//这里记得要保证在cmd命令结束前来读取内容,不然会读不到(一般结合Start与Wait来保证)
func (c *Cmd) StderrPipe() (io.ReadCloser, error)

//这个函数主要是用于连接到命令启动时标准输入的管道
func (c *Cmd) StdinPipe() (io.WriteCloser, error)

//这个函数主要是用于连接到命令启动时标准输出的管道,命令结束时,管道会自动关闭
func (c *Cmd) StdoutPipe() (io.ReadCloser, error)

//这个函数主要是等待*Cmd中的已开始执行的命令执行完成
func (c *Cmd) Wait() error

//这个函数主要是输出命令执行失败的错误信息
func (e *Error) Error() string

//这个函数主要是返回一个执行不成功命令的信息
func (e *ExitError) Error() string

//类似于Command,但是多了一个Context
//如果命令没有完成,但是context完成了,则可以终止命令的继续执行
func CommandContext(ctx context.Context, name string, arg ...string) *Cmd
具体示例

LookPath()函数

package main

import (
	"bytes"
	"context"
	"errors"
	"fmt"
	"io/ioutil"
	"os/exec"
	"time"
)

//LookPath 实例
//执行结果:
//ps is at path:  /bin/ps
func 
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值