package util import ( "cicv-data-closedloop/compile-service/package/config/c_log" "os/exec" ) func Execute(name string, arg ...string) (*exec.Cmd, string, error) { cmd := exec.Command(name, arg...) combinedOutput, err := cmd.CombinedOutput() if err != nil { c_log.GlobalLogger.Info("命令", name, " ", arg, "执行出错:", err) return nil, string(combinedOutput), err } return cmd, string(combinedOutput), nil } func ExecuteWithDir(dir string, name string, arg ...string) (*exec.Cmd, string, error) { cmd := exec.Command(name, arg...) cmd.Dir = dir combinedOutput, err := cmd.CombinedOutput() if err != nil { return nil, "", err } return cmd, string(combinedOutput), nil } func ExecuteWithEnvAndDir(envs []string, dir string, name string, arg ...string) (*exec.Cmd, string, error) { cmd := exec.Command(name, arg...) cmd.Dir = dir for _, env := range envs { cmd.Env = append(cmd.Env, env) } combinedOutput, err := cmd.CombinedOutput() if err != nil { return nil, string(combinedOutput), err } return cmd, string(combinedOutput), nil } //func ExecuteWithEnvAndDir(envs []string, dir string, name string, arg ...string) (*exec.Cmd, error) { // cmd := exec.Command(name, arg...) // cmd.Dir = dir // for _, env := range envs { // cmd.Env = append(cmd.Env, env) // } // if err := cmd.Run(); err != nil { // return nil, err // } // return cmd, nil //}