为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕慕森 2021-12-06 19:47:07
我使用 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")```目前,上面的 sniped 不起作用,因为exit status 2. 你们中的任何人/女士有解决这个问题的方法吗?太感谢了。
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

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

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


查看完整回答
反对 回复 2021-12-06
  • 1 回答
  • 0 关注
  • 369 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信