답변:
시험:
service --status-all |& grep network
명령 행 응용 프로그램은 표준 출력 (stdout) 및 표준 오류 (stderr) 로 알려진 두 개의 텍스트 스트림으로 인쇄 할 수 있습니다 . 기본적으로 터미널은 두 출력 모두 동일하게 표시합니다.
표준 출력은 숫자 1을 부여하고, 표준 오류는 기본, 리디렉션 연산자, 등으로 숫자 2를 부여 >
, |
그리고 <
유일한 표준 출력, 숫자 1에 적용됩니다.
|&
stdout과 stderr을 오른쪽 표준 입력 (stdin) 스트림의 프로세스에 함께 파이프하여 grep
예상대로 작동합니다.
왜 service --status-all
stderr에 인쇄 하는지 모르겠지만 일반적으로 별도의 stderr 스트림을 갖는 것이 stdout이 침묵 할 때에도 오류를 볼 수 있기 때문에 매우 유용합니다.
표준 오류 스트림 ( 2
)을 표준 출력 ( 1
) 으로 리디렉션해야합니다 .
service --status-all 2>&1 | grep network
연산자는 >
일반적으로 파일로 리디렉션합니다 (예 :) 2>/tmp/file
. descriptor를 사용하여 다른 스트림으로 리디렉션하려면 앞에 &
문자가 있어야합니다 (문자 사이에 공백이 없음).