【golang】go执行shell命令行的方法( exec.Command )
后台-插件-广告管理-内容页头部广告(手机) |
所需包:
import "os/exec"
cmd的用法:
cmd := exec.Command("ls", "-lah") //ls是命令,后面是参数
e := cmd.Run()
多个参数的要分开传入:
如:ip link show bond0
cmd :=exec.Command("ip","link","show","bond0")
复杂参数使用fmt.Sprintf拼接:
cmd := exec.Command("cat", fmt.Sprintf("/sys/class/net/%s/bonding/slaves", bondName))
cmd的两种运行方式:
Run 函数启动指定命令并等待它完成,而 Start 启动指定命令但不等待它完成;
e := cmd.Run()
e := cmd.Start()
例子:
- package main
- import (
- "fmt"
- "os/exec"
- )
- func main() {
- cmd := exec.Command("ls")
- cmd.Stdout = os.Stdout //把cmd的输出指向标准输出,不然控制台看不到
- cmd.Stderr = os.Stderr //把cmd的错误输出指向标准错误输出,不然控制台看不到
- e := cmd.Run()
- CheckError(e)
- }
- func CheckError(e error) {
- if e != nil {
- fmt.Println(e)
- }
- }
为不同的操作系统指定命令
需要导入运行时包。
要查看所有可能的操作系统,我们可以运行 go tool dist list ,它将显示所有可能的操作系统和 ARCH 组合。
if runtime.GOOS == "linux" {
cmd = exec.Command("ls")
}
命令封装
见:《golang exec.Command 执行命令用法实例》https://blog.csdn.net/whatday/article/details/109277998
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |