package
0.0.0-20200223121827-10ffd4c65076
Repository: https://github.com/aquayi/go-notes.git
Documentation: pkg.go.dev

# README

exec模块

exec 是对os.StartProcess 的封装,方便执行外部命令。

Cmd

type Cmd
    // Command 生成一个待执行的*cmd
    func Command(name string, arg ...string) *Cmd
    // CommandContext 生成一个带context的待执行*cmd
    func CommandContext(ctx context.Context, name string, arg ...string) *Cmd
    // CombineOutput 执行命令,并合并 stdout 和 stderr 一起,返回输出结果。
    func (c *Cmd) CombinedOutput() ([]byte, error)
    // Output 执行命令,并返回 stdout 的输出结果。
    func (c *Cmd) Output() ([]byte, error)
    // Run 运行程序,并等待程序运行结束。阻塞。
    func (c *Cmd) Run() error
    // Start 启动一个程序,直接返回。异步。
    func (c *Cmd) Start() error
    // StderrPipe returns a pipe that will be connected to the command's standard error when the command starts
    func (c *Cmd) StderrPipe() (io.ReadCloser, error)
    // StdinPipe returns a pipe that will be connected to the command's standard input when the command starts. 
    func (c *Cmd) StdinPipe() (io.WriteCloser, error)
    // StdoutPipe returns a pipe that will be connected to the command's standard output when the command starts.
    func (c *Cmd) StdoutPipe() (io.ReadCloser, error)

    // Wait waits for the command to exit. It must have been started by Start.
    // Wait 会释放cmd所有的相关资源,这样也就省略了stderrPipe和stdoutPipe的显性关闭
    func (c *Cmd) Wait() error

Run和Start的区别

Run = Start + Wait

StderrPipe和StdoutPipe

一定要等到读取完成后,再使用Wait查看结果。

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author