Conditionally perform a command, case
will selectively execute
the command-list corresponding to the first pattern that
matches word.
Syntax case word in [ [(] pattern [| pattern]...) command-list ;;]... esac
The '|' is used to separate multiple patterns,
and the ')' operator terminates a pattern list. A list of patterns
and an associated command-list is known as a clause. Each clause must
be terminated with ';;'.
The word undergoes tilde expansion, parameter expansion, command substitution, arithmetic expansion, and quote removal before matching is attempted. Each pattern
undergoes tilde expansion, parameter expansion, command substitution, and arithmetic expansion. There can be an arbitrary number of case
clauses, each
terminated by a ';;'. The first pattern that matches determines the command-list that is executed.
Here is an example using case
in a script that could be used to describe one interesting feature of an animal:
echo -n "Enter the name of an animal: " read ANIMAL echo -n "The $ANIMAL has " case $ANIMAL in (horse | dog | cat) legs=four;; (man | kangaroo ) legs=two;; (*) echo -n legs="an unknown number of";; esac echo $legs" legs."
The return status is zero if no pattern is matched. Otherwise, the return status is the exit status of the command-list executed.
This is a BASH shell builtin, to display your local syntax from the bash prompt type: help case
"There is a condition worse than blindness, and that is, seeing something that isn't there" ~ Thomas Hardy
if - Conditionally perform a command.
for - Expand words, and execute commands.
until - Execute commands (until error).
select - Accept user choices via keyboard input.
while - Execute commands.
Equivalent Windows command:
IF - Conditionally perform a command.