The switch statement is used to process commands depending on the value of a variable. When you need to handle more than three choices, switch is a useful alternative to an if - then - else statement.
If the
string
variable matches
pattern1
, the first set of
commands
is executed; if
string
matches
pattern2
, the second set of
commands
is executed; and so on. If no patterns match, execute
commands
under the
default:
case.
string
can be specified using
command substitution (
9.16
)
,
variable substitution (
6.8
)
, or
filename expansion (
1.16
)
. Patterns can be specified using the pattern-matching symbols
*
,
?
, and
[]
.
breaksw
is used to exit the
switch
after
commands
are executed. If
breaksw
is omitted (which is rarely done), the
switch
continues to execute another set of
commands
until it reaches a
breaksw
or
endsw
.
Below is the general syntax of switch , side by side with an example that processes the first command-line argument.
switch (string
) switch ($argv[1]) casepattern1
: case -[nN]:commands
nroff $file | lp breaksw breaksw casepattern2
: case -[Pp]:commands
pr $file | lp breaksw breaksw casepattern3
: case -[Mm]:commands
more $file breaksw breaksw . case -[Ss]: . sort $file . breaksw default: default:commands
echo "Error-no such option" exit 1 breaksw breaksw endsw endsw
- from O'Reilly & Associates' UNIX in a Nutshell (SVR4/Solaris)