问题:管道命令失败,退出状态为 1
尝试使用 exec.Command() 通过管道传输命令时,出现以下错误发生:
ps, "cax | grep myapp"
为什么这个命令在 ps cax 工作时失败?
A:使用 exec.Command() 进行惯用管道
通过bash 的整个命令可以解决该问题,但还有一个更惯用的方法解决方案:
代码示例:
package main import ( "fmt" "os/exec" ) func main() { grep := exec.Command("grep", "redis") ps := exec.Command("ps", "cax") // Connect ps's stdout to grep's stdin. pipe, _ := ps.StdoutPipe() defer pipe.Close() grep.Stdin = pipe // Run ps first. ps.Start() // Run and get the output of grep. res, _ := grep.Output() fmt.Println(string(res)) }
说明:
以上是为什么 Go 的 exec.Command() 中的管道命令失败,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!