Difference between revisions of "Golang exec.command"
Jump to navigation
Jump to search
(Created page with "Windows ``` package main import( "fmt" "os/exec" "os" "log" ) func pscmd(s string){ args := []string{s} // cmd := exec.Command("powershell.exe", "ls", "-Depth", "1...") |
|||
Line 1: | Line 1: | ||
+ | Windows and Linux | ||
+ | ``` | ||
+ | package main | ||
+ | |||
+ | import ( | ||
+ | "fmt" | ||
+ | "os/exec" | ||
+ | "os" | ||
+ | //"strings" | ||
+ | "runtime" | ||
+ | ) | ||
+ | |||
+ | |||
+ | func linux_cmd() { | ||
+ | if len(os.Args) < 2 { | ||
+ | fmt.Printf("Usage: %v <cmd> <args>\n", os.Args[0]) | ||
+ | fmt.Printf("Example: %v ls -lhat\n", os.Args[0]) | ||
+ | os.Exit(3) | ||
+ | } | ||
+ | name := os.Args[1] | ||
+ | args := os.Args[2:] | ||
+ | cmd := exec.Command(name, args...) | ||
+ | out, err := cmd.Output() | ||
+ | if err != nil { | ||
+ | fmt.Println(err) | ||
+ | } | ||
+ | fmt.Println(string(out)) | ||
+ | } | ||
+ | |||
+ | |||
+ | func win_cmd() { | ||
+ | if len(os.Args) < 2 { | ||
+ | fmt.Printf("Usage: %v <cmd> <args>\n", os.Args[0]) | ||
+ | fmt.Printf("Example: %v ls -lhat\n", os.Args[0]) | ||
+ | os.Exit(3) | ||
+ | } | ||
+ | // name := os.Args[1] | ||
+ | name := "powershell.exe" | ||
+ | args := os.Args[1:] | ||
+ | cmd := exec.Command(name, args...) | ||
+ | out, err := cmd.Output() | ||
+ | if err != nil { | ||
+ | fmt.Println(err) | ||
+ | } | ||
+ | fmt.Println(string(out)) | ||
+ | } | ||
+ | |||
+ | func main() { | ||
+ | os := runtime.GOOS | ||
+ | //var os string = runtime.GOOS | ||
+ | if os == "linux" { | ||
+ | linux_cmd() | ||
+ | }else if os == "windows" { | ||
+ | fmt.Printf("OS %v is supported.", os) | ||
+ | win_cmd() | ||
+ | }else{ | ||
+ | fmt.Printf("OS %v not supported.", os) | ||
+ | } | ||
+ | } | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
Windows | Windows | ||
``` | ``` |
Revision as of 23:17, 15 November 2020
Windows and Linux
package main import ( "fmt" "os/exec" "os" //"strings" "runtime" ) func linux_cmd() { if len(os.Args) < 2 { fmt.Printf("Usage: %v <cmd> <args>\n", os.Args[0]) fmt.Printf("Example: %v ls -lhat\n", os.Args[0]) os.Exit(3) } name := os.Args[1] args := os.Args[2:] cmd := exec.Command(name, args...) out, err := cmd.Output() if err != nil { fmt.Println(err) } fmt.Println(string(out)) } func win_cmd() { if len(os.Args) < 2 { fmt.Printf("Usage: %v <cmd> <args>\n", os.Args[0]) fmt.Printf("Example: %v ls -lhat\n", os.Args[0]) os.Exit(3) } // name := os.Args[1] name := "powershell.exe" args := os.Args[1:] cmd := exec.Command(name, args...) out, err := cmd.Output() if err != nil { fmt.Println(err) } fmt.Println(string(out)) } func main() { os := runtime.GOOS //var os string = runtime.GOOS if os == "linux" { linux_cmd() }else if os == "windows" { fmt.Printf("OS %v is supported.", os) win_cmd() }else{ fmt.Printf("OS %v not supported.", os) } }
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'") }