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