Changing a Job's State

A job can be moved from one state (foreground, background, or suspended) to any other state. The commands used to manipulate jobs are listed in Table 15-1; %j designates the job on which you wish to operate. fg, bg, kill, and stop can take multiple job specifier arguments, each of which is processed in turn. Table 15-2 shows the various forms that %j can take.

Table 15-1. Job Control Commands

Command

Effect of Command

CTRL–Z

Stop the foreground job

CTRL–C

Interrupt (terminate) foreground job

fg %j

Bring stopped or background job to foreground

bg %j

Move stopped job to background

kill %j

Kill (terminate) stopped or background job

stop %j

Stop background job

suspend

Suspend current shell (if non-login shell)

jobs

Display current job list

Table 15-2. Job Specifiers

Specifier

Job to Which the Specifier Refers

%

Current job (%+ and %% are synonyms for %)

%–

Previous job

%n

Job number n

%str

Job whose command line begins with str

%?str

Job whose command line contains str

You can often refer to a job more easily by name than by number, although %str and %?str are ambiguous if they match more than one job in your job list. When such a situation occurs, the shell provides warning. For example, our job list includes two jobs beginning with vi and two jobs containing reference.ms. As a result, the following commands are ambiguous:

% fg %vi
%vi: Ambiguous.
% fg %?ref
%?ref: Ambiguous.

If you use %?str to refer to a job and the shell responds with No match, the shell is interpreting the ? as ...

Get Using csh & tcsh now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.