Skip to content

# The wait builtin command

## Synopsis

    wait [-f] [-n] [-p VARNAME] [ID...]

## Description

The `wait` builtin command is used to wait for job completion and return exit status.

- if `ID` is a job specification, it waits for all processes in the pipeline of this job
- waits for a specific job (asynchronous command) and report its exit status if one or more `ID` is given
- waits for all running jobs (asynchronous commands)
- waits for "the next" job (`-n` option)
- waits for termination instead of status change (`-f` option)

`ID` may be an operating system process identifier or a shell job specification.

### Options

Option | Description
--- | ---
`-n` | Waits for "the next" child to exit (as opposed to "all children" without this option). Accepts a list of IDs (jobs)
`-f` | Waits for the termination of the given `ID` (instead of waiting for a status change only)
`-p VARNAME` | When waiting for a list (-n) or all jobs, writes the job ID to the job that was actually terminated into the variable `VARNAME`

### Return status

The return status is the return status of the job waited for, or

Status | Reason
--- | ---
0 | waited for all jobs in shell's job list
1 | the given `ID` is not a valid job or process ID

## Examples

## Portability considerations

## See also

November 7, 2024
November 7, 2024

## Comments