The jobs built-in reports job status.


  • jobs [-lnprs] [job…]


The jobs built-in prints information of jobs the shell is currently controlling.

By default, the following information is printed for each job, line by line:

  • the job number,

  • the + or - symbol if the job is the current or previous job, respectively,

  • the status, and

  • the command string.



Print the process ID, status, and command string for each process in the jobs.


Print new jobs only: jobs whose status has never been reported since the status changed.


Print process group IDs of jobs only.


Print running jobs only.


Print stopped jobs only.



The job IDs of jobs to be reported. When no job is specified, all jobs under the shell’s control are reported.

The percent sign (%) at the beginning of a job ID can be omitted if the shell is not in the POSIXly-correct mode.

Exit status

The exit status of the jobs built-in is zero unless there is any error.


The jobs built-in is a mandatory built-in.

The POSIX standard defines the -l and -p options only: other options cannot be used in the POSIXly-correct mode. In the POSIXly-correct mode, the effect of the -l option is different in that status is reported for each job rather than for each process.

The process group ID of a job executed by yash is equal to the process ID of the first command of the pipeline that forms the job.