■实例说明
我们经常需要执行本地shell命令,或者是执行其他二进制可执行文件
1)执行本地二进制可执行文件
2)阻塞执行,等待执行完成再继续
■实例代码
[Golang] 纯文本查看 复制代码 package main
import (
"bytes"
"fmt"
"os/exec"
)
// 执行shell命令
func execShell(cmd string) (string, error) {
shell := exec.Command("/bin/bash", "-c", cmd)
// 重定向执行命令的标准输出和标准错误
var out bytes.Buffer
shell.Stdout = &out
shell.Stderr = &out
// 执行命令,这里会等待命令执行完成
err := shell.Run()
// 返回执行结果
return out.String(), err
}
func main() {
// 等待10秒,然后输出hello world
cmd := "sleep 10;echo hello world"
out, _ := execShell(cmd)
fmt.Println(out)
// 输出:hello world
// test是我本地二进制可执行文件,打印系统参数os.Args
// 传入参数abc和bcd1
cmd = "/Users/工具方法/test abc bcd1"
out, _ = execShell(cmd)
fmt.Println(out)
// 输出:[/Users/工具方法/test abc bcd1]
}
|