Go语言执行系统命令行命令,转

 1 package main
 2 
 3 import (
 4   "os"
 5   "os/exec"
 6   "fmt"
 7   "flag"
 8   "strings"
 9 )
10 
11 func main() {
12   command := flag.String("cmd", "pwd", "Set the command.")
13   args := flag.String("args", "", "Set the args. (separated by spaces)")
14   flag.Usage = func() {
15     fmt.Fprintf(os.Stderr, "Usage: %s [-cmd <command>] [-args <the arguments (separated by spaces)>]\n", os.Args[0])
16     flag.PrintDefaults()
17   }
18   flag.Parse()
19   fmt.Println("Command: ", *command)
20   fmt.Println("Arguments: ", *args)
21   var argArray []string
22   if *args != "" {
23     argArray = strings.Split(*args, " ")
24   } else {
25     argArray = make([]string, 0)
26   }
27   cmd := exec.Command(*command, argArray...)
28   buf, err := cmd.Output()
29   if err != nil {
30       fmt.Fprintf(os.Stderr, "The command failed to perform: %s (Command: %s, Arguments: %s)", err, *command, *args)
31       return
32   }
33    fmt.Fprintf(os.Stdout, "Result: %s", buf)
34 }

来自http://outofmemory.cn/code-snippet/1125/Go-language-execution-xitongmingling-row-command