Buy this Shell Scripting Tutorial as a PDF for only $5
9. Case
Thecase
statement saves going through a whole set of
if .. then .. else
statements. Its syntax is really quite
simple:
talk.sh
#!/bin/sh echo "Please talk to me ..." while : do read INPUT_STRING case $INPUT_STRING in hello) echo "Hello yourself!" ;; bye) echo "See you again!" break ;; *) echo "Sorry, I don't understand" ;; esac done echo echo "That's all folks!"
Okay, so it's not the best conversationalist in the world; it's only an example!
Try running it and check how it works...
$ ./talk.sh
Please talk to me ...
hello
Hello yourself!
What do you think of politics?
Sorry, I don't understand
bye
See you again!
That's all folks!
$
The syntax is quite simple:
The
case
line itself is always of the same format, and it
means that we are testing the value of the variable INPUT_STRING
.
The options we understand are then listed and followed by a right bracket,
as hello)
and bye)
.
This means that if
INPUT_STRING
matches hello
then that section
of code is executed, up to the double semicolon.
If INPUT_STRING
matches bye
then the goodbye
message is printed and the loop exits. Note that if we wanted to exit
the script completely then we would use the command exit
instead of break
.
The third option here, the *)
, is the default catch-all
condition; it is not required, but is often useful for debugging purposes
even if we think we know what values the test variable will have.
The whole case statement is ended with esac
(case backwards!)
then we end the while loop with a done
.
That's about as complicated as case
conditions get, but they can be a
very useful and powerful tool. They are often used to parse the
parameters passed to a shell script, amongst other uses.


Back: Test Next: Variables (Part 2)
Books and eBooks
My Shell Scripting books, available in Paperback and eBook formats.
![]() Shell Scripting Tutorial is this tutorial, in 88-page Paperback and eBook formats. Convenient to read on the go, and to keep by your desk as an ever-present companion. | ![]() Shell Scripting: Expert Recipes for Linux, Bash and more is my 564-page book on Shell Scripting. The first half explains the features of the shell; the second half has real-world shell scripts, organised by topic, with detailed discussion of each script. |
Contact
You can mail me with this form. If you expect a reply, please ensure that the address you specify is valid. Don't forget to include the simple addition question at the end of the form, to prove that you are a real person!