golang中如何执行脚本并获取返回值
调用脚本
在golang标准库中提供了两种方式可以用来启动进程调用脚本
第一种是在os库中的Process类型,Process类型包含一系列方法用来启动进程并对进程进行操作(参考: https://golang.org/pkg/os/#Process)
第二种是在os/exec库种通过Cmd类型的各个函数实现对脚本的调用,实际上Cmd是对Process中各种方法的高层次封装(参考: https://golang.org/pkg/os/exec/)
示例 使用Process执行脚本
package main
import (
"fmt"
"os"
)
func main() {
shellPath := "/home/xx/test.sh"
argv := make([]string, 1)
attr := new(os.ProcAttr)
newProcess, err := os.StartProcess(shellPath, argv, attr) //运行脚本
if err != nil {
fmt.Println(err)
}
fmt.Println("Process PID", newProcess.Pid)
processState, err := newProcess.Wait() //等待命令执行完
if err != nil {
fmt.Pr