다음 bash 스크립트가 있다고 가정해 보겠습니다.
#!/usr/bin/env bash
process-1&
process-2&
process-3&
두 가지 질문이 있습니다.
- 모든 프로세스가 종료 코드 0으로 종료되었는지 스크립트 끝에서 어떻게 확인합니까?
- 시작된 모든 프로세스가 완료될 때까지 스크립트를 어떻게 "대기"한 다음 요약할 수 있습니까
echo
(사용자에게 종료 코드를 알릴 수도 있음)?
답변1
bash 내장을 사용할 수 있습니다 wait
.
3번 wait -n
, 매번 종료 상태를 확인합니다.
~에서man bash
:
wait [-n] [n ...]
Wait for each specified child process and return its termination
status. Each n may be a process ID or a job specification; if a
job spec is given, all processes in that job's pipeline are waited
for. If n is not given, all currently active child processes are
waited for, and the return status is zero. If the -n option is
supplied, wait waits for any job to terminate and returns its exit
status. If n specifies a non-existent process or job, the return
status is 127. Otherwise, the return status is the exit status of
the last process or job waited for.