site/docs/3.3/cmds/wait.html
wait [-n | --any] [PID | PROCESS\_NAME] ...
wait waits for child jobs to 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.
sleep 10 &wait $last\_pid
spawns sleep in the background, and then waits until it finishes.
for i in (seq 1 5); sleep 10 &; endwait
spawns five jobs in the background, and then waits until all of them finishes.
for i in (seq 1 5); sleep 10 &; endhoge &wait sleep
spawns five jobs and hoge in the background, and then waits until all sleeps finish, and doesn't wait for hoge finishing.