telnet test | grep -o Unable
telnet: Unable to connect to remote host: Connection refused
결과는 "불가능"이어야 합니다.
답변1
telnet
연결할 수 없을 때 출력되는 오류 메시지가 표준으로 인쇄됩니다.실수개울. 기본적으로 표준 오류 스트림은 터미널로 직접 전송됩니다. 표준 파이프만 사용할 수 있습니다.산출다른 명령으로 이동합니다( grep
이 경우).
오류 스트림을 표준 출력 스트림으로 리디렉션할 수 있습니다.
telnet test 2>&1 | grep -o Unable
그러면 두 스트림이 병합되어 grep
병합된 데이터 스트림으로 작동합니다.
오류 조건을 캡처하려는 경우 telnet
유틸리티의 종료 상태를 사용할 수도 있습니다 .
if ! telnet test 2>/dev/null; then
echo 'something went wrong with telnet'
exit 1
fi
echo 'telnet ran successfully'
telnet
0이 아닌 종료 상태가 반환되면(일종의 실패를 나타냄) 스크립트가 종료됩니다. 또한 오류 스트림을 리디렉션하여 /dev/null
완전히 삭제했습니다.
답변2
메시지가 stderr에 인쇄된 것처럼 보이므로 다음을 수행하십시오.
telnet test 2>&1 | grep -o Unable
Bash 및 ZSH에서는 다음을 사용할 수도 있습니다 |&
.
telnet test |& grep -o Unable