About
The case control statement execute commands based on regular expression pattern matching.
Example
Initscript example:
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status anacron
;;
restart)
stop
start
;;
condrestart)
if test "x`pidof anacron`" != x; then
stop
start
fi
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
Syntax
case WORD in PATTERN1) COMMANDS;; PATTERN2) COMMANDS ;; ... PATTERNN) COMMANDS;; esac
# or
case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac
Selectively execute COMMANDS based upon WORD matching glob PATTERN. The | is used to separate multiple patterns.
Flow words:
- continue
- break
A case command first expands word, and tries to match it against each pattern in turn, using the same matching rules as for path-name expansion.
The word is expanded using:
- and quote removal.
Each pattern examined is expanded using:
- tilde expansion,
- parameter and variable expansion,
- arithmetic substitution,
- command substitution,
- and process substitution.
Match
If the shell option nocasematch is enabled, the match is performed without regard to the case of alphabetic characters.
When a match is found, the corresponding list is executed.
After the first match, no subsequent matches are attempted.
Exit Status
The exit status is zero if no pattern matches. Otherwise, it is the exit status of the last command executed in list.
Exit Status
Returns the status of the last command executed.
Documentation / Reference
help case