【Go语言】Golang调用shell命令的实现

【做业务,需要用golang 去调用shell 命令,找到了一些资料,现在加以总结,并对作者表示感谢!
原文来源:http://blog.csdn.net/hanj4096/article/details/18196395  】

 
package main

import (
“bytes”
“fmt”
“log”
“os/exec” //这个包是主要用来调用cmd命令
)

//调用系统指令的方法,参数s 就是调用的shell命令
func system(s string) {
cmd := exec.Command(“/bin/sh”, “-c”, s) //调用Command函数
var out bytes.Buffer //缓冲字节

cmd.Stdout = &out //标准输出
err := cmd.Run() //运行指令 ,做判断
if err != nil {
log.Fatal(err)
}
fmt.Printf(“%s”, out.String()) //输出执行结果
}

func main() {
system(“who “) //调用函数,参数是指令,可以有多条
}

这样在主函数中调用system函数的时候,传入一个shell指令,就可以实现go调用shell ,用golang中的out 来讲结构输出。

有Golang调用shell的需求是意味着你是Linux环境并且Golang能够很好的跑起来,下一篇博客会谈一谈在windows下面只用Linux虚拟机,搭建Golang环境,使用shell和Vim等等。

强烈建议各位朋友学习一下shell!!!

 

刘凯宁@C2P
2014年7月11日

 

Share

1 则回应给 “【Go语言】Golang调用shell命令的实现”

  1. 猪佬 说道:

    如果函数参数是这样呢system(“ping http://www.baidu.com“),该怎么改正?

发表评论

*