go执行脚本中的工具

法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执行脚本的官方文档

https://golang.org/pkg/os/exec/#example_Command

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章