1.摘要
在很多场合, 使用Go语言需要调用外部命令来完成一些特定的任务, 例如: 使用Go语言调用Linux命令来获取执行的结果,又或者调用第三方程序执行来完成额外的任务。在go的标准库中, 专门提供了os/exec包来对调用外部程序提供支持, 本文将对调用外部命令的几种使用方法进行总结。
2.直接调用函数
先用Linux上的一个简单命令执行看一下效果, 执行cal命令, 会打印当前月的日期信息,如图:

如果要使用Go代码调用该命令, 可以使用以下代码:
func main(){
cmd := exec.Command("cal")
err := cmd.Run()
if err != nil {
fmt.Println(err.Error())
}
}
首先, 调用"os/exec"包中的Command函数,并传入命令名称作为参数, Command函数会返回一个exec.Cmd的命令对象。接着调用该命令对象的Run()方法运行命令。
如果此时运行程序, 会发现什么都没有出现, 这是因为我们没有处理标准输出, 调用os/exec执行命令, 标准输出和标准错误默认会被丢弃。
这里将cmd结构中的Stdout和Stderr分别设置为os.stdout和os.Stderr, 代码如下:
func main(){
cmd := exec.Command("cal")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Run()
if err

本文详细介绍了在Go语言中如何调用外部命令,包括直接调用、输出到文件、发送到网络、输出到多个目标、分别获取输出和错误、循环获取命令内容等场景,提供实用的代码示例,帮助开发者更好地理解和应用os/exec包。
最低0.47元/天 解锁文章
2317

被折叠的 条评论
为什么被折叠?



