Go言语 linux环境 exec Command 执行长命令失败

海飞飞 发布于 2013/05/08 09:24
阅读 6K+
收藏 0

无论windows还是linux/unix,程序都可以通过命令行执行。

golang提供了os/exec包,来完成调用过程。
构造命令命令的构造是调用Command函数:
func Command(name string, arg ...string) *Cmd
该函数返回一个Cmd结构,传入参数是第一个是命令字符串,跟在后面的是各个命令行参数

现在要要在执行 linux环境 go言语中执行exec Command

查询程序ping进程是否存在: ps -ef | grep -v "grep"|grep "ping"

package main
import (
    "fmt"
    "os/exec"
    "bytes"
)

func main() {

cmd1:=exec.Command( ps -ef | grep -v "grep"|grep "ping")

cmd2:=exec.Command( "ps", `-ef`+`|` +"grep"+ `-v grep`+`|`+"grep"+`ping`)


}

命令行参数每个参数要单独做为函数的一个传入参数,这样很麻烦,然而经过我的测试,
我试的把参数写入命令里,以上2种方法结果返回失败。

求高手指点~

 

加载中
0
青萍之末
青萍之末
试试用多个Command,应该顺序把stdin跟stdout连起来就可以了
0
viney
viney

刚刚自己写了一个,希望对你有帮助.

https://github.com/viney/command/blob/master/main.go

0
海飞飞
海飞飞
太谢谢了,非常滴用^^
返回顶部
顶部