Bash - Case
Table of Contents
About
The case control statement execute commands based on regular expression pattern matching.
Articles Related
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 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 (see Pathname Expansion below). The word is expanded using tilde expansion, parameter and variable expan- sion, arithmetic substitution, command substitution, process substitution and quote removal. Each pattern examined is expanded using tilde expansion, parameter and variable expan- sion, arithmetic substitution, command substitution, and process substitution. 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. The exit status is zero if no pattern matches. Oth- erwise, it is the exit status of the last command executed in list.
Exit Status
Returns the status of the last command executed.
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