The case statement

case is a flow control construct that provides for multi-way branching based on patterns.

Program flow is controlled on the basis of the word given. This word is compared with each pattern in order until a match is found, at which point the associated command(s) are executed.

   case	word 	in
   pattern1)	command(s)
   ;;
   pattern2)	command(s)
   ;;
   patternN)	command(s)
   ;;
   esac

When all the commands are executed control is passed to the first statement after the esac. Each list of commands must end with a double semi-colon ;;.

A command can be associated with more than one pattern. Patterns can be seperated from each other by a | symbol. For example:

   case	word	in
   pattern1|pattern2)	command
   ...					;;

Patterns are checked for a match in the order in which they appear. A command is always carried out after the first instance of a pattern.

The * character can be used to specify a default pattern as the * character is the shell wildcard character..


Top document