Bash Scripting for Beginners: Complete Guide to Getting Started - Case Statements (Part 13)
Table of Contents
Introduction
This tutorial provides a comprehensive guide on using case statements in Bash scripting, a fundamental concept for beginners. Case statements allow you to execute different sections of code based on the value of a variable, making your scripts more efficient and easier to read. Understanding this concept is essential for writing effective Bash scripts.
Step 1: Understanding the Case Statement Syntax
A case statement in Bash is structured in a way that allows you to match a variable against multiple patterns. Here's the basic syntax:
case variable in
pattern1)
# commands for pattern1
;;
pattern2)
# commands for pattern2
;;
*)
# default case
;;
esac
Key Components
- variable: The value you are testing against the patterns.
- pattern: The condition you want to match.
- commands: The actions to perform if the pattern matches.
- ;;: Indicates the end of each case.
Practical Tip
Make sure to use esac
to close your case statement, as forgetting it can lead to syntax errors.
Step 2: Creating a Simple Case Statement Script
To illustrate how to implement a case statement, let’s create a simple script that checks the day of the week and outputs a message accordingly.
- Open your terminal.
- Use a text editor to create a new script file:
nano day_check.sh
- Write the following script:
#!/bin/bash
echo "Enter the day of the week:"
read day
case $day in
Monday)
echo "Start of the week!"
;;
Friday)
echo "Almost the weekend!"
;;
Saturday|Sunday)
echo "It's the weekend!"
;;
*)
echo "It's a weekday."
;;
esac
- Save and exit the editor.
Common Pitfall
Ensure you provide executable permissions to your script before running it:
chmod +x day_check.sh
Step 3: Testing Your Script
Now that your script is ready, it's time to test it.
- Run the script in your terminal:
./day_check.sh
- Enter different days of the week to see how the case statement responds.
Practical Advice
Try entering various inputs, including uppercase and lowercase, to understand how your script handles different scenarios.
Step 4: Adding a While Loop for Continuous Input
To enhance your script, you can introduce a while loop that allows users to check multiple days without restarting the script.
- Modify your script as follows:
#!/bin/bash
while true; do
echo "Enter the day of the week (or type 'exit' to quit):"
read day
if [[ $day == "exit" ]]; then
break
fi
case $day in
Monday)
echo "Start of the week!"
;;
Friday)
echo "Almost the weekend!"
;;
Saturday|Sunday)
echo "It's the weekend!"
;;
*)
echo "It's a weekday."
;;
esac
done
- Save and run the script again.
Key Takeaway
The while loop allows for a more interactive experience, enabling users to enter multiple days until they choose to exit.
Conclusion
In this tutorial, you learned how to implement case statements in Bash scripting, create a simple script to check the day of the week, and enhance it with a while loop for continuous input. Case statements improve the readability and functionality of your scripts. As a next step, consider exploring more complex conditions or integrating functions into your scripts to further enhance your Bash scripting skills.