나는 수정할 수없는 스크립트로 작업하고 있는데, 종료 코드는 사용하지 않습니다. (모든 출구는 단순히 ‘출구’입니다)
스크립트를 수정하지 않고 (또는 스크립트를 작성한 바보에게 소리 치지 않고), 스크립트의 어느 시점 이전에 스크립트를 종료하지 않고 스크립트가 “끝났습니다”라는 것을 확인할 수있는 방법이 있습니까?
내가 생각할 수있는 유일한 것은 그것이 끝날 때까지 어떻게 든 활성 프로세스를 추적하는 것이지만 오류로 인해 종료 될 때 종료 될 수도 있습니다.
답변
나는 수정할 수없는 스크립트로 작업하고 있는데, 종료 코드는 사용하지 않습니다.
오류가 있으면 해당 파일의 마지막 줄에 ‘exit’가 있어야합니다. 그렇지 않으면 스크립트가 성공적으로 실행을 마칩니다.
이 코드는 명령이 실패하면 코드 1로 종료하고 성공하면 코드 0으로 종료합니다.
bash -x scriptname 2>&1 | tail -n1 | grep -vq exit
tail -n1
마지막 행만 표시하고 grep -vq exit
해당 줄에 단어가 포함되었는지 여부를 테스트합니다. exit
.
이 디스플레이에 유용한 메시지를 표시하는 방법의 예는 다음과 같습니다.
bash -x scriptname 2>&1 | tail -n1 | grep -vq exit && echo Success
또는:
bash -x scriptname 2>&1 | tail -n1 | grep -vq exit || echo Fail