NAME SWITCH(I)
switch - shell multi-way branch command
SYNOPSIS
switch arg
: label1
commands...
breaksw
\f3&. . .
: labeln
commands...
breaksw
: default
commands...
endsw
DESCRIPTION
Switch searches forward in the input file for the first one
of:
1. a label that pattern-matches arg. The pattern-matching
used is that of the Shell in generating argument lists.
2. the label default.
3. a matching endsw command.
The Shell resumes reading commands from the next line after
the location where the search stopped. Thus, switch sup-
plies a `case' or `computed goto' statement similar to that
of C. Because `:' is ignored by the Shell, several labels
may occur in order, so that the same sequence of commands is
executed for several different values of arg.
The breaksw command searches forward to the next unmatched
endsw, and is normally used at the end of the sequence of
commands following each label. It may be omitted to allow
common code to be shared among label values. Several
breaksw commands may be written on the same line to exit
from that many levels of nested switch-endsw pairs.
The optional label default should be placed last, since
switch always stops upon discovering it. The construct can
be nested: any labels enclosed by a switch-endsw pair are
ignored by an outer switch. The most common use of switch is
to process `flag' arguments in a shell procedure.
SEE ALSO
if(I), sh(I), while(I)
DIAGNOSTICS
switch: missing endsw
breaksw: missing endsw
BUGS
None of these commands should be hidden behind semicolons.
Nested groups hidden behind if or else may also cause trou-
ble.