golang 执行linux命令,返回命令执行码,返回标准错误输出

import (
"os/exec"
"strings"
)

func execCmd(command string) (int, string) {
    
    
	cmd := exec.Command("/bin/bash", "-c", command)
	errout := new(bytes.Buffer)  //定义一块内存,用来存放标准错误输出
	cmd.Stdout = initlog.Outfile // cmd.Stdout -> log
	// cmd.Stderr = initlog.Outfile // cmd.Stderr -> log
	cmd.Stderr = errout  // 将标准错误输出写到该内存中

	//err := cmd.Start()
	//initlog.CheckErr("execCmd 2 : ",err)

	var cmdExitStatus int
	if err := cmd.Run(); err != nil {
    
    
		if ex, ok := err.(*exec.ExitError); ok {
    
    
			cmdExitStatus = ex.Sys().(syscall.WaitStatus).ExitStatus()
		}
	}
	erroutTodb := errout.String()
	return cmdExitStatus,erroutTodb
}

猜你喜欢

转载自blog.csdn.net/weixin_43202081/article/details/108540585