Q: 종료 상태 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!