top of page

Linux If-Then-Else Statement

Control program flow with if-then-else in Linux scripting.

If-then-else statements in Linux allows you to define conditions. Based on conditions you can make program execute specific commands.


If-then-else


The basic syntax for if-then-else condition in Linux is

if [ <test-condition> ]; then
    <statements>
fi

The if statement is followed by a test condition. If the condition is TRUE, the statements get executed. If the condition is FALSE, the entire IF block is ignored. Consider

#!/bin/bash

read -p "Enter a number: " num

if [ $num -lt 10 ]; then
    echo "Number entered is less than 10."
fi

The above script will only work if the number entered by user is less than 10 (condition is TRUE). If the number entered by user is above 10 (condition is FALSE), entire IF block is ignored.


To handle the FALSE condition, we use IF-THEN-ELSE block. Consider below script

#!/bin/bash

read -p "Enter a number: " num

if [ $num -lt 10 ]; then
    echo "Number entered is less than 10."
else
    echo "Number entered is greater than 10."
fi

If the user inputs a number below 10, the first echo command is executed. If the value entered is anything else, the ELSE part is executed.



IF-THEN-ELIF


Sometimes you would want to test a condition within a condition. Consider below script

#!/bin/bash

read -p "Enter a number: " num

if [ $num -lt 10 ]; then
    echo "Number entered is less than 10."
elif [ $num -eq 20 ]; then
    echo "Number entered is 20."
else
    echo "Number entered is greater than 20."
fi

The above script is testing if number entered by user is less than 10. If not, then its checking if number entered is equals to 20. If not, then we have final ELSE block to print for any other value entered by user.



Conditional Operators


Here are some of the commonly used conditional operators to test conditions

  • STRING1 = STRING2: TRUE if both strings are equal

  • STRING1 != STRING2: TRUE if both strings are not equal

  • NUMBER1 -eq NUMBER2: TRUE if both numbers are equal

  • NUMBER1 -lt NUMBER2: TRUE if number 1 is less than number 2

  • NUMBER1 -gt NUMBER2: TRUE if number 1 is greater than number 2

  • NUMBER1 -le NUMBER2: TRUE if number 1 less than or equal to number 2

  • NUMBER1 -ge NUMBER2: TRUE if number 1 greater than or equal to number 2

🍄🍄🍄

Become a top notch dba with DBA Genesis
Start your DBA career today
bottom of page