diff --git a/doc_src/wait.txt b/doc_src/wait.txt index e729d2fb9..57aa27318 100644 --- a/doc_src/wait.txt +++ b/doc_src/wait.txt @@ -1,16 +1,34 @@ -\section wait wait - wait for commands to complete +\section wait wait - wait for jobs to complete \subsection wait-synopsis Synopsis \fish{synopsis} -wait [-n | --any] PID... +wait [-n | --any] [PID | PROCESS_NAME] ... \endfish \subsection wait-description Description -`wait` waits for child processes to complete. If a pid is specified, the command waits for that pid. If no pid is specified, the command waits for all background processes. +`wait` waits for child jobs to complete. -If the `-n` / `--any` flag is provided, the command returns as soon as the first subprocess completes. If it is not provided, it returns after all subprocesses complete. +- If a pid is specified, the command waits for the job that the process with the pid belongs to. +- If a process name is specified, the command waits for the jobs that the matched processes belong to. +- If neither a pid nor a process name is specified, the command waits for all background jobs. +- If the `-n` / `--any` flag is provided, the command returns as soon as the first job completes. If it is not provided, it returns after all jobs complete. \subsection wait-example Example -`sleep 10 & ; wait %1` spawns sleep in the background, and then waits until it finishes. +\fish +sleep 10 & +wait $last_pid +\endfish +spawns `sleep` in the background, and then waits until it finishes. +\fish +for i in (seq 1 5); sleep 10 &; end +wait +\endfish +spawns five jobs in the background, and then waits until all of them finishes. +\fish +for i in (seq 1 5); sleep 10 &; end +hoge & +wait sleep +\endfish +spawns five jobs and `hoge` in the background, and then waits until all `sleep`s finishes, and doesn't wait for `hoge` finishing.