유닉스 쉘에서, wait는 백그라운드 프로세스의 실행이 끝날 때까지 일시 중지되는 명령입니다.
Usage
wait [n]
여기서 n은 현재 실행 중인 백그라운드 프로세스 (작업)의 pid 또는 작업 ID입니다. 만약 n이 주어지지 않으면, 명령은 호출하는 쉘에 알려진 모든 작업이 종료될 때까지 기다립니다.
wait는 통상적으로 종료된 마지막 작업의 탈출 상태를 반환합니다. 그것은 역시 n이 존재하지 않는 작업을 지정하는 이벤트에서 127을 반환하거나 대기할 작업이 없으면 0을 반환할 수도 있습니다.
wait는 현재 쉘 실행 환경의 작업 테이블을 알아야 하기 때문에, 그것은 보통 쉘 내장으로 구현됩니다.
Example
이 명령은 다가오는 섹션이 이전 섹션의 성공적인 완료에 의존하는 장벽을 구현하기 위해 스크립트의 일부가 병렬로 실행될 수 있는 경우에 유용할 수 있습니다.
다음 예제는 rsync를 사용하여 iona라는 머신에서 src/ 디렉토리를 가져오고 동시에 이 프로그램이 의존하는 라이브러리를 업데이트한 후 조합을 빌드합니다.
#!/usr/bin/env bash
# Parallel update script which makes use of the wait command
# Update local copy
rsync iona:src/ . &
# Upgrade required libraries, or exit indicating failure if make failed for some reason
make -C lib || exit 1
# Wait for rsync to terminate (may have already happened) and finish the job
wait
make
지정된 작업 제어 ID 번호를 기다립니다:
$ ls -R / > /dev/null 2>&1 & # start any long running background process
[2] 1986
$ wait %2 # waits for background job number 2 to terminate, then returns