Conditional Statements in Bash
In this article, we’ll explore the various types of conditional statements in Bash and how to use them effectively.
If Statement
The most basic conditional statement is the if
statement. It allows you to execute code blocks based on whether a condition is true or false.
Basic Syntax:1
2
3if [ condition ]; then
# commands if condition is true
fi
Example:1
2
3
4
5
6
7
age=25
if [ $age -ge 18 ]; then
echo "You are an adult."
fi
If-Else Statement
The if-else statement allows you to specify an alternative code block to execute when the condition is false.
Syntax:1
2
3
4
5if [ condition ]; then
# commands if condition is true
else
# commands if condition is false
fi
Example:1
2
3
4
5
6
7
8
9
temperature=28
if [ $temperature -gt 30 ]; then
echo "It's hot outside!"
else
echo "The weather is pleasant."
fi
If-Elif-Else Statement
For multiple conditions, use the elif (else if) clause to check additional conditions.
Syntax:1
2
3
4
5
6
7if [ condition1 ]; then
# commands for condition1
elif [ condition2 ]; then
# commands for condition2
else
# commands if no condition is true
fi
Example:1
2
3
4
5
6
7
8
9
10
11
12
13
grade=75
if [ $grade -ge 90 ]; then
echo "A"
elif [ $grade -ge 80 ]; then
echo "B"
elif [ $grade -ge 70 ]; then
echo "C"
else
echo "F"
fi
Nested If Statements
You can nest if statements inside other if statements for more complex logic.
Example:1
2
3
4
5
6
7
8
9
10
11
12
13
14
age=25
has_license=true
if [ $age -ge 18 ]; then
if [ "$has_license" = true ]; then
echo "You can drive a car."
else
echo "You need a license to drive."
fi
else
echo "You're too young to drive."
fi
Case Statement
For multiple conditions with specific values, the case statement can be more readable than multiple if-elif statements.
Example:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
fruit="apple"
case $fruit in
"apple")
echo "It's an apple."
;;
"banana")
echo "It's a banana."
;;
*)
echo "Unknown fruit."
;;
esac
Logical Operators
Use logical operators to combine conditions:
- AND: &&
- OR: ||
- NOT: !
Example:1
2
3
4
5
6
7
8
age=25
has_job=true
if [ $age -ge 18 ] && [ "$has_job" = true ]; then
echo "You're an employed adult."
fi
File Test Operators
Bash provides special operators for testing file attributes:
-e
: file exists-f
: regular file-d
: directory-r
: readable-w
: writable-x
: executable
Example:1
2
3
4
5
if [ -f "myfile.txt" ]; then
echo "myfile.txt exists and is a regular file."
fi
Conclusion
Mastering conditional statements in Bash allows you to create more dynamic and responsive scripts. By combining these different types of conditionals and operators, you can handle complex decision-making processes in your Bash scripts efficiently.
Remember to test your conditions thoroughly and consider edge cases when writing conditional statements. With practice, you’ll become proficient in using these powerful constructs to enhance your Bash scripting skills.