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

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