Quick Reference: C Shell switch Statement

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 (), variable substitution (), or filename expansion (). 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]) case pattern1: case -[nN]: commands nroff $file | lp breaksw breaksw case pattern2: case -[Pp]: commands pr $file | lp breaksw breaksw case pattern3: 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

- DG from Anonymous' UNIX tutorial (SVR4/Solaris)