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

我使用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。你们中的任何人/女士都可以解决此问题吗?非常感谢。

回答:

管道(|)是由Shell程序(如bash)实现的。如果要使用它们,则应执行shell传递包含管道程序调用的命令:

exec.Command("/bin/sh", "-c",

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

以上是 使用Golang运行Grep命令时退出状态2 的全部内容, 来源链接: utcz.com/qa/423297.html

回到顶部