When it comes to automating tasks on Linux, Bash scripting is an essential skill for both beginners and seasoned sysadmins. Among the most fundamental concepts is conditional decision making, which lets your scripts respond intelligently based on the data or situation at hand. In this comprehensive guide, you’ll discover how to use if statements, else conditions, and elif branches to enhance your Bash scripts for real-world automation scenarios.
Bash conditional statements are logical checks that control your script’s execution flow.
They allow your program to decide what to do next based on given conditions.
Key types:
true
.true
.bashif [ CONDITION ]
then
# Actions when CONDITION is true
fi
💡 Tip: Use consistent indentation (2–4 spaces) for readability.
Example — Checking if a number is positive:
bash#!/bin/bash
read -p "Enter a number: " num
if [ "$num" -gt 0 ]; then
echo "The value is positive."
fi
If you want to handle both the true
and false
possibilities, use the else
statement.
Syntax:
bashif [ CONDITION ]
then
# Actions if condition is true
else
# Actions if condition is false
fi
Example — Age check:
bash#!/bin/bash
read -p "Enter your age: " age
if [ "$age" -ge 18 ]; then
echo "Access granted."
else
echo "Access denied. You must be 18 or older."
fi
When your script requires more than two possible outcomes, use elif
:
bashif [ CONDITION1 ]
then
# Executes if CONDITION1 is true
elif [ CONDITION2 ]
then
# Executes if CONDITION2 is true
else
# Executes if none are true
fi
Example — Grading logic:
bash#!/bin/bash
read -p "Enter a score (0-100): " score
if [ "$score" -ge 90 ]; then
echo "Grade: A"
elif [ "$score" -ge 75 ]; then
echo "Grade: B"
else
echo "Grade: C or lower"
fi
You can check one condition inside another to build more complex decision-making.
bashif [ "$x" -gt "$y" ]; then
if [ "$x" -gt "$z" ]; then
echo "$x is largest"
else
echo "$z is largest"
fi
else
# Nested logic continues
fi
Use logical operators to connect conditions.
AND (&&
or -a
):
bashif [ "$a" -gt 0 ] && [ "$b" -gt 0 ]; then
echo "Both numbers are positive."
fi
OR (||
or -o
):
bashif [ "$food" = "apple" ] || [ "$food" = "banana" ]; then
echo "Popular fruit."
fi
Category | Operator / Syntax | Description |
---|---|---|
String Operators | [ -n "$str" ] | True if string is not empty |
[ -z "$str" ] | True if string is empty | |
Integer Operators | [ "$a" -eq "$b" ] | True if integers are equal |
[ "$a" -ne "$b" ] | True if integers are not equal | |
[ "$a" -gt "$b" ] | True if greater than | |
[ "$a" -lt "$b" ] | True if less than | |
[ "$a" -ge "$b" ] | True if greater or equal | |
[ "$a" -le "$b" ] | True if less or equal | |
File Test Operators | [ -f filename ] | File exists and is a regular file |
[ -d directory ] | Directory exists | |
[ -e path ] | File or directory exists |
"$VAR"
[[ ... ]]
for conditional expressions in modern Bashread -p
for interactive prompts👉 Learn how to write reusable functions here: Bash Functions Explained: Syntax, Examples, and Best Practices
What is Bash Scripting? Bash scripting allows you to save multiple Linux commands in a file and…
Learn how to create and use Bash functions with this complete tutorial. Includes syntax, arguments,…
Introduction Unlock the full potential of your Linux system with this comprehensive guide to essential…
Playwright-MCP (Model Context Protocol) is a cutting-edge tool designed to bridge the gap between AI…
JBDev is a specialized development tool designed to streamline the creation and debugging of jailbreak…
The Kereva LLM Code Scanner is an innovative static analysis tool tailored for Python applications…