리눅스 분류
쉘스크립트 설명좀 부탁드립니다.
작성자 정보
- 김재명 작성
- 작성일
컨텐츠 정보
- 3,884 조회
- 3 댓글
- 0 추천
- 목록
본문
3. 간단한 예제
특정 프로세의 수를 세어 10개 이상이면 콘솔상에 특정 문자를 출력하는
것에 대해서 알아보자
-------------------------------------------------------------------------------
#!/bin/bash
process_name="httpd"
process_max_cnt="10"
process_cnt="`ps -ef | grep $process_name | grep -v "grep" | wc -l`"
if [ "$process_cnt" -gt "$process_max_cnt" ] ; then
echo " $process_name : $process_cnt "
fi
-------------------------------------------------------------------------------
위와같이 작성이 된다면 httpd라는 프로세서의 갯수가 10개 초과이라면
해당 스크립트를 실행시킬시에 "httpd : 11" 과 같은 형식으로 출력이 된다 .
특정 프로세의 수를 세어 10개 이상이면 콘솔상에 특정 문자를 출력하는
것에 대해서 알아보자
-------------------------------------------------------------------------------
#!/bin/bash
process_name="httpd"
process_max_cnt="10"
process_cnt="`ps -ef | grep $process_name | grep -v "grep" | wc -l`"
if [ "$process_cnt" -gt "$process_max_cnt" ] ; then
echo " $process_name : $process_cnt "
fi
-------------------------------------------------------------------------------
위와같이 작성이 된다면 httpd라는 프로세서의 갯수가 10개 초과이라면
해당 스크립트를 실행시킬시에 "httpd : 11" 과 같은 형식으로 출력이 된다 .
위의 예제에서 process_cnt="`ps -ef | grep $process_name | grep -v "grep" | wc -l`"를 잘 풀어서 설명해주시분 안계신가요?
파이프가 여러개가 들어가 있으니까 너무 어렵네요
기본적인것도 모르는 초보에게 설명을 부탁드립니다.
관련자료
-
이전
-
다음
댓글 3
아카샤님의 댓글
- 아카샤
- 작성일
해당 문장은 쉘스크립트 문제라기 보다...
ps -ef | grep $process_name | grep -v "grep" | wc -l
이부분을 이해하시면 될것 같은데....
공부하시는 거라면.... ps,grep,wc 명령어와 옵션에 대해 알아보시면 금방 이해가 되실 것 같네요^^
ps -ef | grep $process_name | grep -v "grep" | wc -l
이부분을 이해하시면 될것 같은데....
공부하시는 거라면.... ps,grep,wc 명령어와 옵션에 대해 알아보시면 금방 이해가 되실 것 같네요^^
박신주님의 댓글
- 박신주
- 작성일
파이프의 역할이 무엇인지는 아시죠? " | " 앞의 결과를 " | " 뒤의 입력으로 받아들이는거..
차례대로 풀어나가면 됩니다.
실행순서는
ps -ef : 현재 실행중인 프로세스 정보들을 출력합니다.
ps -ef | grep $process_name : 현재 실행중인 프로세스 정보들을 출력하여 $process_name 문구를 포함하는 줄을 찾아서 출력합니다.
ps -ef | grep $process_name | grep -v "grep" : 현재 실행중인 프로세스 중에 $process_name 문구를 포함하는 줄을 찾고 grep 이라는 단어가 들어가는 줄은 제외시키고 출력합니다.
ps -ef | grep $process_name | grep -v "grep" | wc -l : 현재 실행중인 프로세스 중에 $process_name 문구를 포함하는 줄을 찾고 grep 이라는 단어가 들어가는 줄은 제외시키고 남은 줄 수를 출력합니다.
이해되시나요?
차례대로 풀어나가면 됩니다.
실행순서는
ps -ef : 현재 실행중인 프로세스 정보들을 출력합니다.
ps -ef | grep $process_name : 현재 실행중인 프로세스 정보들을 출력하여 $process_name 문구를 포함하는 줄을 찾아서 출력합니다.
ps -ef | grep $process_name | grep -v "grep" : 현재 실행중인 프로세스 중에 $process_name 문구를 포함하는 줄을 찾고 grep 이라는 단어가 들어가는 줄은 제외시키고 출력합니다.
ps -ef | grep $process_name | grep -v "grep" | wc -l : 현재 실행중인 프로세스 중에 $process_name 문구를 포함하는 줄을 찾고 grep 이라는 단어가 들어가는 줄은 제외시키고 남은 줄 수를 출력합니다.
이해되시나요?
김재명님의 댓글
- 김재명
- 작성일
고맙습니다. 큰 도움이 되었습니다. 친절한 설명 감사합니다.