2
, 내가 얻을 :ps와의 차이 | 내가 프로세스를 인쇄 할 때 화장실
$ ps --no-headers
12961 pts/0 00:00:00 bash
16676 pts/0 00:00:00 ps
그래서, 두 프로세스들이 있습니다. 그러나 내가 할 때 :
$ ps --no-headers | wc -l
3
왜 그런가?
, 내가 얻을 :ps와의 차이 | 내가 프로세스를 인쇄 할 때 화장실
$ ps --no-headers
12961 pts/0 00:00:00 bash
16676 pts/0 00:00:00 ps
그래서, 두 프로세스들이 있습니다. 그러나 내가 할 때 :
$ ps --no-headers | wc -l
3
왜 그런가?
귀하의 wc 프로세스가 세 번째 프로세스입니다. 따라서 두 경우 모두 카운트가 정확하며 모든 것이 예상대로 작동합니다. piped 프로세스는 ps가 끝나고 출력을 내뱉은 후에가 아니라 Enter를 치면 즉시 시작됩니다.
이 문제가 발생하지 않으려면 임시 파일을 사용할 수 있습니다.
ps --no-headers > /tmp/foo
wc -l /tmp/foo
은 다시 2를 생성합니다.
고맙습니다. 그게 내가 의심 스럽지만 나는 배시 명령과 파이핑에 대해 아주 새로운 것입니다. –