Bash Conditional Expressions

Conditional expressions are the backbone of any powerful scripting language, and Bash is no exception. They allow your scripts to make decisions based on various conditions, adding flexibility and intelligence to your automation tasks.

Think of it like this: You're writing a script to download a file. If the file already exists, you shouldn't download it again. A conditional expression lets you check if the file exists before downloading, saving time and bandwidth.

Here's a breakdown of conditional expressions in Bash.

  1. Operators: These are the workhorses of conditional expressions. They compare values and determine whether a condition is true or false. Common operators include == (equal to), != (not equal to), < (less than), and > (greater than).
  2. Expressions: These are combinations of values, operators, and other elements that evaluate to true or false. For example, $file_size > 1000 checks if the size of a variable $file_size is greater than 1000 bytes.

Here are some common conditional expressions in Bash along with examples:

if statement

Used to make decisions based on the success or failure of a command.

if [ condition ]; then # code to be executed if the condition is true else # code to be executed if the condition is false fi
age=18 if [ $age -ge 18 ]; then echo "You are eligible to vote." else echo "You are not eligible to vote." fi


Used to compare values using various operators like -eq (equal), -ne (not equal), -lt (less than), -le (less than or equal), -gt (greater than), and -ge (greater than or equal).

num1=10 num2=20 if [ $num1 -gt $num2 ]; then echo "$num1 is greater than $num2" else echo "$num1 is not greater than $num2" fi

Logical Operators

Used for combining multiple conditions using logical operators such as && (logical AND), || (logical OR).

age=25 if [ $age -ge 18 ] && [ $age -le 30 ]; then echo "You are in the eligible age range." else echo "You are not in the eligible age range." fi

String Comparisons

Used for comparing strings using = (equal) and != (not equal).

name="John" if [ "$name" = "John" ]; then echo "Hello, John!" else echo "You are not John." fi

File Checks

Used to check the existence, type, and permissions of files.

file_path="/path/to/file.txt" if [ -e $file_path ]; then echo "File exists." else echo "File does not exist." fi
Points to Remember:
  1. Use clear and concise expressions for better readability.
  2. Parentheses can be used to group expressions and control evaluation order.
  3. Test your scripts thoroughly to ensure they handle all possible conditions correctly.


Conditional expressions in Bash, such as the if statement, enable the execution of specific code blocks based on the success or failure of given conditions. These conditions can involve numeric or string comparisons, logical operators, and file checks, providing flexibility for decision-making in Bash scripts.