当前位置:  开发笔记 > 编程语言 > 正文

使用Golang运行Grep命令时退出状态2

如何解决《使用Golang运行Grep命令时退出状态2》经验,为你挑选了1个好方法。

我使用Golang编写简单的脚本来使用一些参数grep日志文件.这是我的shell命令

grep CRON var/log/sys | tail -5 | grep "cd /home/raka/repo && git status"

我想使用os/exec包在Golang上面运行命令.这是我的代码狙击.

var (
  reader io.Reader
  out    []byte
  err    error
  commandName string = "grep"
)

args := []string{"CRON", "/var/log/syslog", "| tail -6", "| grep \"git status\""}

cmd := exec.Command(commandName, args...)
r, err = cmd.StdoutPipe()
err = cmd.Start()
out, err = ioutil.ReadAll(r)
err = cmd.Wait()

return strings.Split(string(out), "\n")```

目前,上面的狙击不起作用,因为exit status 2.你们这些人/女士们有解决这个问题的方法吗?非常感谢.



1> kostya..:

Pipes(|)由shell程序(如bash)实现.如果你想使用它们,你应该执行shell传递包含管道程序调用的命令:

exec.Command("/bin/sh", "-c",
    "grep CRON var/log/sys | tail -5 | grep \"cd /home/raka/repo && git status\"")

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有