法1.
注意:go执行脚本时,commend命令在前,参数在后。我这里的执行脚本的参数用了[]string{}...代表切片的意思。
package main
import (
//"bytes"
"fmt"
//"log"
"os/exec"
"time"
//"reflect"
//"errors"
//"strings"
)
func main() {
now := time.Now()
yesTime := now.AddDate(0,0,-1).Add(time.Minute * -10).Format("20060102 15:04:05")
nTime := now.Add(time.Minute * -10).Format("20060102 15:04:05")
a := fmt.Sprintf("[%s,%s]", yesTime, nTime)
fmt.Println(a)
command := "" // 这里输入要执行脚本的命令
//cmd := exec.Command(command, []string{}...) // 输入参数
cmd := exec.Command(command, []string{}...)
var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
log.Println(err.Error(), stderr.String())
} else {
log.Println(out.String()) // 这里的out是type func()string类型的。
}
法2.
package main
import (
//"bytes"
"fmt"
//"log"
"os/exec"
"time"
//"reflect"
//"errors"
//"strings"
)
func main() {
now := time.Now()
yesTime := now.AddDate(0,0,-1).Add(time.Minute * -10).Format("20060102 15:04:05")
nTime := now.Add(time.Minute * -10).Format("20060102 15:04:05")
a := fmt.Sprintf("[%s,%s]", yesTime, nTime)
fmt.Println(a)
command := ""
cmd := exec.Command(command, []string{}...)
out, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
}
fmt.Println(string(out)) // 这里的out是[]unit8类型的
fmt.Println(len(out))
}
附:go执行脚本的官方文档