Pipelines
A pipeline is a sequence of commands separated
by the pipe symbol (|); a single command is also
technically a pipeline. We can string any number (subject to system
dependent limits) of commands together to form a long pipeline. The
following are valid pipelines:
date
This is a simple command that displays the time and date.
who | cut -c1-8 | sort
This is a pipeline of three simple commands; it will list the
users currently logged in in alphabetical order, without any of the
extra information that who displays. It assumes that
usernames are at most 8 characters long. The first command in the
pipeline lists users together with more information, including the
terminal they are using the system from, and the second -
cut - extracts the first eight characters from each
line of the output of who. These eight characters are
precisely the character columns that contain the usernames. The
output of cut is then piped to sort to
place the usernames in alphabetical order.
ls -l /usr/local/bin 2> errorfile | wc -l >
outputfile
This is a pipeline of two simple commands, each redirecting some
of its output, which counts the number of files in
/usr/local/bin. If directory
/usr/local/bin exists, the number of lines produced by
ls -l - and hence the number of files in
/usr/local/bin - will be counted by wc,
and the result sent to outputfile. If
/usr/local/bin does not exist, an error message will
be sent to errorfile.
who | VAR=42 mycommand | VAR=99 mycommand
This is a pipeline of three simple commands, the latter two run
with variable VAR set to a specific value; since
mycommand is not a system utility - it is the name of
a script which you will have written - the effect of this pipeline
will depend on what you have written in that script.
|