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

发布于 2021-11-18 18:00:49 字数 1078 浏览 945 评论 3

无论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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

千笙结 2021-11-21 08:16:18

太谢谢了,非常滴用^^

不再见 2021-11-20 23:19:12

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

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

笑红尘 2021-11-20 18:22:31

试试用多个Command,应该顺序把stdin跟stdout连起来就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文