Go言语 linux环境 exec Command 执行长命令失败
无论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种方法结果返回失败。
求高手指点~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
太谢谢了,非常滴用^^
刚刚自己写了一个,希望对你有帮助.
https://github.com/viney/command/blob/master/main.go
试试用多个Command,应该顺序把stdin跟stdout连起来就可以了