我使用 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\"")
- 1 回答
- 0 关注
- 369 浏览
添加回答
举报
0/150
提交
取消