搜集几篇相关文章和好使的代码块
文章
Go exec command
Advanced command execution in Go with os/exec edit
go os/exec 简明教程
包
代码块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| package main
import ( "fmt" "log" "os/exec" )
func main() { out, err := exec.Command("date").Output() if err != nil { log.Fatal(err) } fmt.Printf("The date is %s\n", out) }
|
1 2 3 4 5 6 7 8 9
| cmd := exec.Command("date") var outb, errb bytes.Buffer cmd.Stdout = &outb cmd.Stderr = &errb err := cmd.Run() if err != nil { log.Fatal(err) } fmt.Println("out:", outb.String(), "err:", errb.String())
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| package main
import ( "fmt" "os/exec" )
func main() { app := "echo"
arg0 := "-e" arg1 := "Hello world" arg2 := "\n\tfrom" arg3 := "golang"
cmd := exec.Command(app, arg0, arg1, arg2, arg3) stdout, err := cmd.Output()
if err != nil { fmt.Println(err.Error()) return }
fmt.Println(string(stdout)) }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| package main
import ( "bytes" "fmt" "log" "os/exec" )
const ShellToUse = "bash"
func Shellout(command string) (error, string, string) { var stdout bytes.Buffer var stderr bytes.Buffer cmd := exec.Command(ShellToUse, "-c", command) cmd.Stdout = &stdout cmd.Stderr = &stderr err := cmd.Run() return err, stdout.String(), stderr.String() }
func main() { err, out, errout := Shellout("ls -ltr") if err != nil { log.Printf("error: %v\n", err) } fmt.Println("--- stdout ---") fmt.Println(out) fmt.Println("--- stderr ---") fmt.Println(errout) }
|