golang执行exec命令
创建对象:
cmd, err := exec.Command("echo", "show me")
执行命令:
cmd.Run() //Run 阻塞进程,直到命令执行结束
cmd.Start() //Start 非阻塞执行
cmd.Wait() //Wait 阻塞进程,等待命令执行结束, 与 Star 配合使用
设置输出:
var outInfo bytes.Buffer
cmd := exec.Command("tr", "a-z", "A-Z")
cmd.Stdin = strings.NewReader("select * from user")
cmd.Stdout = &outInfo
Cmd结构体说明:
func Command(name string, arg ...string) *Cmd
Cmd结构体定义:
type Cmd struct {
// 命令
Path string
// 命令参数
Args []string
// 进程执行环境
Env []string
// 命令执行目录, 默认当前目录
Dir string
// 命令输入
Stdin io.Reader
// 命令输出
Stdout io.Writer
// 命令报错
Stderr io.Writer
ExtraFiles []*os.File
SysProcAttr *syscall.SysProcAttr
Process *os.Process
ProcessState *os.ProcessState
}
行至水穷片,坐看云起时