Bash에서 명령을 실행하고 결과에 단어가 포함되어 있는지 확인하고 단어가 포함되어 있으면 일부 작업을 수행하는 프로그램을 만들어야 합니다.
예: 프린터가 온라인인지 확인해야 합니다.
lpstat -p [printer name]
결과에 이 단어가 포함되어 있으면 inactive
스크립트에서 나에게 이메일을 보내야 합니다 .
프로그램 출력에서 특정 단어를 확인하는 방법은 무엇입니까?
답변1
이것이 강한 자의 임무이다 grep
.
lpstat -p myprinter | grep inactive
의 출력을 lpstat
의 입력에 연결한 grep
다음 해당 문자열이 포함된 행을 인쇄합니다.비활성.
다음을 포함하는 줄을 인쇄하세요.단어 비활성(즉,비활성공백, 쉼표 등으로 둘러싸여 있음) 옵션을 추가할 수 있습니다.
lpstat -p myprinter | grep -w inactive
그러나 테스트를 수행하고 싶습니다. grep
단어를 찾을 때마다 "성공" 종료 값(실제로는 0)을 생성한다는 것을 알아야 합니다 . 이는 테스트에 사용될 수 있습니다. 또한 명령의 출력에는 관심이 없고 grep
성공 상태에만 관심이 있습니다. 그러니 grep
조용히 하고 이에 대한 테스트를 구축해 보겠습니다 .
if lpstat -p myprinter | grep -q -w inactive
then
mail -s "printer is inactive" othin
fi
읽기 과제는 다음과 같습니다.https://www.man7.org/linux/man-pages/man1/grep.1.html.