In some cases, a
case statement can be more appropriate. For example, when you have a variable and need to execute lines of code depending on its value, the
case statement makes for clean code.
Case statements do not execute any test commands and therefore do not use exit codes.
Here's a script that outputs a greetings depending on which country a user is from.
#!/bin/sh echo "Please select which country you are from: " printf "1: Canada 2: Croatia 3: Czech Republic 4: France 5: Germany 6: Greece 7: Italy 8: Netherlands 9: Poland 10: Sweden 11: United States " read -p "Country number code: " input case $input in 1|11) echo 'Hello!' ;; 2) echo 'Bog!' ;; 3) echo 'Ahoj!' ;; 4) echo 'Salut!' ;; 5|8) echo 'Hallo!' ;; 6) echo 'YAH sahs!' ;; 7) echo 'Ciao!' ;; 9) echo 'Czesc!' ;; 10) echo 'Hej!' ;; *) echo 'Please enter a valid number.' ;; esac
Notice the use of the
| operand. We may also use regular expressions if we are trying to match a string!
We may simplify this script with the
select command, which we'll see next.
We can also use case-statements and match input strings with regular expressions!
Let's try to build a script where the user inputs his/her name, and the response changes depending on whether the input starts with a vowel or consonant.
#!/bin/sh printf "What is your first name? " read first_name case $first_name in [aeiouAEIOU]*) echo 'Your name starts with a vowel!' ;; [0-9]*) echo 'Strange that your name would start with a number...' ;; [a-zA-Z]*) echo 'Your name starts with a consonant!' ;; *) echo 'Your name starts with some funky punctuation.' ;; esac
This book approaches system administration in a practical way and is an invaluable reference for both new administrators and experienced professionals. It details best practices for every facet of system administration, including storage management, network design and administration, email, web hosting, scripting, and much more.$ Check price
Ever feel achy from sitting crunched up on your computer table? Try lying down with these optical glasses that allow you to work on your laptop while lying flat on your back. This is the perfect solution with those with limited mobility or those who wish to prevent neck cramps and back strains.$ Check price