이전 명령이 성공한 경우 한 명령을 실행하고, 그렇지 않은 경우 다른 명령을 실행하는 방법
프로세스를 확인하려고 합니다(이 프로세스를 호출한다고 가정).some_process)가 서버에서 실행 중입니다.그렇다면 1을 에코하고, 그렇지 않으면 0을 에코합니다.
사용 중인 명령이지만 부분적으로만 작동합니다(아래 자세한 내용 참조).스크립트를 한 줄로 작성해야 합니다.
ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi
참고: The[s]에some_proces[s]예방하기 위한 것입니다.grep자기 자신을 돌려주는 것으로부터.
한다면some_process실행 중입니다."1"메아리가 들립니다. 괜찮습니다.하지만, 만약에some_process실행 중이 아니며 아무 것도 반향되지 않습니다.
명시적으로 확인할 필요가 없습니다.$?그냥 하기:
ps aux | grep some_proces[s] > /tmp/test.txt && echo 1 || echo 0
이것은 에코가 고장나지 않는 것에 의존하며, 이는 확실히 보장되지 않습니다.더 신뢰할 수 있는 방법은 다음과 같습니다.
if ps aux | grep some_proces[s] > /tmp/test.txt; then echo 1; else echo 0; fi
&&"그리고 성공적인 경우"를 의미합니다.if그것의 오른쪽에 있는 진술, 당신은 오직 다음과 같은 경우에만 그것이 실행되도록 보장합니다.grep돌아온다0수정하려면 다음을 사용합니다.;대신:
ps aux | grep some_proces[s] > /tmp/test.txt ; if [ $? -eq 0 ]; then echo 1; else echo 0; fi
(또는 줄 바꿈을 사용합니다).
사용하다grep -vc무시하는grep에서ps라인을 동시에 출력하고 카운트합니다.
if [[ $(ps aux | grep process | grep -vc grep) > 0 ]] ; then echo 1; else echo 0 ; fi
다음을 최대한 활용할 수 있습니다.&&그리고.||다음과 같은 연산자:
ps aux | grep some_proces[s] > /tmp/test.txt && echo 1 || echo 0
grep 자체를 제외하기 위해 다음과 같은 작업을 수행할 수도 있습니다.
ps aux | grep some_proces | grep -vw grep > /tmp/test.txt && echo 1 || echo 0
pgrep -q some_process && echo 1 || echo 0
여기에 더 많은 한 명의 정예가들
checkdb: image: mysql: 8.0.31 환경: MYSQL_ROOT_PASSWORD: ${MYSql_ROOT_PASSWORD} MYSQL_DATABASE:${MYsql_DATABASE}
entrypoint: sh -c 'while true; do
mysql -h ${DB_MYSQL:-db} --user=${MYSQL_USER:-root} --password=${MYSQL_ROOT_PASSWORD} --execute "use ${MYSQL_DATABASE};";
if [ $? -eq 0 ]; then exit 0; fi;
sleep 5;
done'
언급URL : https://stackoverflow.com/questions/17203122/how-to-run-one-command-if-a-previous-command-succeeds-otherwise-run-another-com
'programing' 카테고리의 다른 글
| NPM 글로벌 설치 "모듈을 찾을 수 없음" (0) | 2023.05.24 |
|---|---|
| 장고 모델에서 전화번호를 저장하는 가장 좋은 방법은 무엇입니까? (0) | 2023.05.24 |
| jQuery에서 PUT/DELETE 요청을 보내는 방법은 무엇입니까? (0) | 2023.05.24 |
| Eclipse의 "..." 오류 메시지가 포함된 리포지토리를 찾을 수 없음"에 대해 어떻게 해야 합니까? (0) | 2023.05.14 |
| Swift 클래스의 정적 vs 클래스 함수/변수? (0) | 2023.05.14 |