【golang】go执行shell命令行的方法( exec.Command )

2023-12-17

所需包 :

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【golang】go执行shell命令行的方法( exec.Command ) 的相关文章

随机推荐