Difference between revisions of "Golang exec.command"
Jump to navigation
Jump to search
Line 13: | Line 13: | ||
func shell_cmd(name string, args []string) { | func shell_cmd(name string, args []string) { | ||
− | + | cmd := exec.Command(name, args...) | |
− | + | out, err := cmd.Output() | |
− | + | if err != nil { | |
− | + | fmt.Println(err) | |
− | + | } | |
− | + | fmt.Println(string(out)) | |
} | } | ||
func shellcmd() { | func shellcmd() { | ||
− | + | system_os := runtime.GOOS | |
− | + | if system_os == "linux" { | |
− | + | name := os.Args[2] | |
− | + | args := os.Args[3:] | |
− | + | shell_cmd(name, args) | |
− | + | }else if system_os == "windows" { | |
+ | if len(os.Args) < 3 { | ||
+ | fmt.Printf("Usage: %v <cmd> <args>\n", os.Args[0]) | ||
+ | fmt.Printf("Example: %v ls -lhat\n", os.Args[0]) | ||
+ | os.Exit(3) | ||
+ | } | ||
+ | var name string = "powershell.exe" | ||
+ | args := os.Args[2:] | ||
+ | shell_cmd(name, args) | ||
+ | }else{ | ||
+ | fmt.Printf("OS %v not supported.\n", system_os) | ||
+ | } | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
func main() { | func main() { | ||
− | + | if len(os.Args) < 2 { | |
− | + | fmt.Printf("Usage: %v <fuction>\n", os.Args[0]) | |
− | + | fmt.Printf("Example: %v shellcmd ls -lhat\n", os.Args[0]) | |
− | + | os.Exit(3) | |
− | + | } | |
− | + | function := os.Args[1] | |
− | + | if function == "shellcmd" { | |
− | + | shellcmd() | |
− | + | }else{ | |
− | + | fmt.Printf("E: Unsupported function %v\n", function) | |
− | + | } | |
} | } | ||
``` | ``` | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Revision as of 02:59, 16 November 2020
Windows and Linux
package main import ( "fmt" "os/exec" "os" //"strings" "runtime" ) func shell_cmd(name string, args []string) { cmd := exec.Command(name, args...) out, err := cmd.Output() if err != nil { fmt.Println(err) } fmt.Println(string(out)) } func shellcmd() { system_os := runtime.GOOS if system_os == "linux" { name := os.Args[2] args := os.Args[3:] shell_cmd(name, args) }else if system_os == "windows" { if len(os.Args) < 3 { fmt.Printf("Usage: %v <cmd> <args>\n", os.Args[0]) fmt.Printf("Example: %v ls -lhat\n", os.Args[0]) os.Exit(3) } var name string = "powershell.exe" args := os.Args[2:] shell_cmd(name, args) }else{ fmt.Printf("OS %v not supported.\n", system_os) } } func main() { if len(os.Args) < 2 { fmt.Printf("Usage: %v <fuction>\n", os.Args[0]) fmt.Printf("Example: %v shellcmd ls -lhat\n", os.Args[0]) os.Exit(3) } function := os.Args[1] if function == "shellcmd" { shellcmd() }else{ fmt.Printf("E: Unsupported function %v\n", function) } }
Windows
package main import( "fmt" "os/exec" "os" "log" ) func pscmd(s string){ args := []string{s} // cmd := exec.Command("powershell.exe", "ls", "-Depth", "1") cmd := exec.Command("powershell.exe", args...) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr err := cmd.Run() if err != nil { log.Fatalf("cmd.Run() failed with %s\n", err) } fmt.Println("======") } func main(){ pscmd("ls -Depth 1") pscmd("echo 'hi there'") }