法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執行腳本的官方文檔