[Next] [Previous] [Up] [Top] [Contents]
9.9.2 Conditional switch and case
9.9.2.1 Sh
case parameter in
pattern1[|pattern1a]) command list1;;
pattern2) command list2
command list2a;;
pattern3) command list3;;
*) ;;
esac
You can use any valid filename meta-characters within the patterns to be matched. The ;; ends each choice and can be on the same line, or following a <newline>, as the last command for the choice. Additional alternative patterns to be selected for a particular case are separated by the vertical bar, |, as in the first pattern line in the example above. The wildcard symbols,: ? to indicate any one character and * to match any number of characters, can be used either alone or adjacent to fixed strings.
This simple example illustrates how to use the conditional case statement.
#!/bin/sh
case $1 in
aa|ab) echo A
;;
b?) echo "B \c"
echo $1;;
c*) echo C;;
*) echo D;;
esac
So when running the script with the arguments on the left, it will respond as on the right:
aa A
ab A
ac D
bb B bb
bbb D
c C
cc C
fff D
Introduction to Unix - 14 AUG 1996
[Next] [Previous] [Up] [Top] [Contents]