Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
We (@tasq0 and I) implemented wait command.
The implementation is almost following POSIX. As discussed in issue #1422, we can't retain the exit status of background jobs, but we thought it's not a critical problem. If we want to know the failure of background jobs, there are another ways to do it. Shell needs wait command.
The functions we implemented
Wait for all background jobs
With no options specified, wait for all background jobs finishing.
For example:
Wait for specified jobs
With job ids or process ids specified, wait for only specified jobs finishing.
For example:
The wait command returns before job 2 (
sleep 10 &
) finishes.Wait for any background jobs
With -n option given, wait for any background jobs finishing.
For example:
The wait command returns immediately when job 1 (
sleep 5 &
) finishes.Acknowledgment
I would like to express my gratitude to @tasq0 who also greatly contributed to this PR.
TODOs: