Without options, each jobspec is removed from the table of active jobs.
If the -h option is given, each jobspec is not removed from the table, but is marked so that SIGHUP is not sent to the job if the shell receives a SIGHUP.
If no jobspec is present, and neither the -a nor the -r option is supplied, the current job is used.
If no jobspec is supplied:
the -a option means to remove or mark all jobs;
the -r option restricts operation to running jobs.
Return value
The return value is 0 unless a jobspec does not specify a valid job.