Linux

If statements in bash scripting

Hello. In this tutorial, we will understand and see a practical implementation of bash if scripting in Linux based environment.

1. Introduction

If statement in Linux allows making decisions in the bash scripts. They allow us to decide whether or not this code has to be run based on the conditions met. if statement can be combined with a loop that could allow a user to write complex queries.

1.1 Setting up Linux environment

To set up the Linux environment I have created an ec2 instance on the AWS cloud. You are free to create your own Linux environment.

2. if statements in bash scripting

I will be using Visual Studio Code as my preferred IDE for writing the shell scripts.

2.1 Basic if statement

It simply says that if a particular condition evaluates to truly operate. If not true skip those operations. Represented by the syntax –

Syntax

if [ some_condition ]
then
  commands...
fi

Let us understand this with a simple example. The below script will print the x is greater than y message on the console as the given condition evaluates to true.

Example

#!/bin/bash

# basic if statement example

x=20
y=10

if [ $x -gt $y ] 
then
  echo "x is greater than y"
fi

2.2 Nested if statement

Nested if bash scripting is an example where multiple if statements are necessary. Represented by the syntax –

Syntax

if [ condition ]
then
    commands...
else
    if [ condition ]
    then
        commands...
    fi
fi

Let us understand this with a simple example. The script will print the x is greater than or equal to 30 message on the console as the variable x is not greater than 50 but it is equal to 30. In here the if condition inside of the else block will be executed.

Example

#!/bin/bash

# nested if statement example

x=30

if [ $x -gt 50 ] 
then
  echo "x is greater than 50"
else
  if [ $x -ge 30 ] 
  then
    echo "x is greater than or equal to 30"
  else
    echo "Cannot perform calculation"
  fi
fi

2.3 if-else statement

If-else statement in bash scripting is helpful when a user wants to perform a set of commands when the condition evaluates to false. Represented by the syntax –

Syntax

if [ condition ]
then
  commands...
else
  commands...
fi

Let us understand this with a simple example. The script with print the y is greater than x message on the console as the if condition will evaluate to false.

Example

#!/bin/bash

# if else statement example

x=10
y=15

if [ $x -gt $y ] 
then
  echo "x is greater than y"
else
  echo "y is greater than x"
fi

2.4 if-elif-else statement

To include a series of conditions in a bash script we use this approach. Represented by the syntax –

Syntax

if [ condition  ]
then
  commands...
elif [ condition  ]
  then
  commands...
else
  commands...
fi

Let us understand this with a simple example. The script will evaluate the multiple conditions and print the result on the console once the condition is evaluated.

Example

#!/bin/bash

# if elif else statement example

x=10
y=15

if [ $x -gt $y ] 
then
  echo "x is greater than y"
elif [ $x -lt $y ] 
then
  echo "x is less than y"
else
  echo "x is equal to y"
fi

2.5 boolean operators

In bash scripting, boolean operators play an important role when we have to perform logic on multiple conditions. Bash scripting supports two operators i.e. and (&&) and or (||). Let us understand this with a simple example.

Example

#!/bin/bash

# boolean operator example

# or operator example
echo "or operator example"
name="James"

if [[ $name == "James" || $name == "Rose" ]] 
then
  echo "correct name found!"
else
  echo "incorrect name found!"
fi

echo

# and operator example
echo "and operator example"
x=21
y=9

if [[ $x == "21" && $y == "9" ]]
then
   echo "John is $x and Adam is $y"
else
  echo "John is $x and Jessie is $y"
fi

2.6 case statements

Bash scripting allows a way to perform an evaluation based on the variable matching a series of conditions. The case statement comes as an alternative to multiple if, elif, and else statements. Represented by the syntax –

Syntax

case variable in
pattern1)
   ;;
pattern2)
   ;;
esac

Let us understand this with a simple example. The script will print the result on the screen based on a pattern that matches the variable.

Example

#!/bin/bash

# case operator example

fruits="apple"

case "$fruits" in
  #case 1
    "apple") echo "you like apple" ;;
  #case 2
    "mango") echo "you like mango" ;;
  #case 3
    "pear") echo "you like pear" ;;
  #default
    *) echo "you don't like fruits" ;;
esac

That is all for this tutorial and I hope the article served you with whatever you were looking for. Happy Learning and do not forget to share!

3. Summary

In this tutorial, we saw the implementation of bash if scripting. You can download the source code from the Downloads section.

4. Download the Project

This was a tutorial for bash if scripting in a Linux environment.

Download
You can download the full source code of this example here: if statements in bash scripting

Yatin

An experience full-stack engineer well versed with Core Java, Spring/Springboot, MVC, Security, AOP, Frontend (Angular & React), and cloud technologies (such as AWS, GCP, Jenkins, Docker, K8).
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button