How To

How To Compare Strings In Bash Scripts

Introduction

String comparison is an important part of Bash scripting. In many scripts, you need to compare text values before making a decision. For example, you may want to check if a username is correct, if user input matches a specific word, if a file extension is valid, or if a command output contains an expected value.

In Bash, strings can be compared using conditional statements such as if, else, and elif. This is useful for Linux automation, cybersecurity scripts, log analysis, menu-based scripts, and user input validation.

Basic String Comparison In Bash

The most common way to compare strings in Bash is by using the [[ ]] test expression.

Basic syntax:

if [[ "$string1" == "$string2" ]]; then    echo "Strings are equal"else    echo "Strings are not equal"fi

The == operator checks whether two strings are equal.

Bash Script To Compare Two Strings

Create a new Bash script:

nano compare-strings.sh

Add the following code:

#!/bin/bashname1="kali"name2="kali"if [[ "$name1" == "$name2" ]]; then    echo "Both strings are equal"else    echo "Strings are different"fi

Save the file and run it:

chmod +x compare-strings.sh./compare-strings.sh

Output:

Both strings are equal

Check If Strings Are Not Equal

To check if two strings are not equal, use the != operator.

#!/bin/bashuser="admin"if [[ "$user" != "root" ]]; then    echo "User is not root"else    echo "User is root"fi

This script checks whether the value of user is different from root.

Compare User Input In Bash

String comparison is often used with user input.

#!/bin/bashread -p "Enter username: " usernameif [[ "$username" == "admin" ]]; then    echo "Access granted"else    echo "Access denied"fi

This script asks the user to enter a username and compares it with admin.

Check If A String Is Empty

You can check whether a string is empty using -z.

#!/bin/bashread -p "Enter your name: " nameif [[ -z "$name" ]]; then    echo "Name cannot be empty"else    echo "Hello, $name"fi

The -z operator returns true if the string length is zero.

Check If A String Is Not Empty

To check if a string is not empty, use -n.

#!/bin/bashmessage="Linux Security"if [[ -n "$message" ]]; then    echo "String is not empty"else    echo "String is empty"fi

Case-Sensitive String Comparison

Bash string comparison is case-sensitive by default.

#!/bin/bashword1="Linux"word2="linux"if [[ "$word1" == "$word2" ]]; then    echo "Match found"else    echo "No match found"fi

Output:

No match found

Here, Linux and linux are treated as different strings.

Conclusion

String comparison in Bash is simple and useful for creating smarter scripts. You can compare equal strings using ==, different strings using !=, empty strings using -z, and non-empty strings using -n.

For beginners, learning Bash string comparison is important because it helps scripts make decisions based on text values. This skill is useful in Linux automation, cybersecurity scripting, form validation, log filtering, and command-line tools.

Cyber Defence

Recent Posts

Best OSINT Tools for Journalists 2026: Verify Sources, Images and Claims

Journalists use OSINT to verify public information before publishing. In 2026, misinformation, AI-generated images, fake…

6 hours ago

Install Docker on Ubuntu 20.04: Complete Step-by-Step Guide

DockerĀ is an open-source platform that lets you package and run applications inside containers. Each container…

16 hours ago

Install PostgreSQL on Ubuntu: Database Setup and Admin Guide

PostgreSQL (often called Postgres) is an open-source relational database system. It supports advanced features like JSON…

17 hours ago

Install Xrdp Remote Desktop on Ubuntu: Setup and Connect

Xrdp is an open-source server that lets you connect to your Ubuntu machine from another computer…

17 hours ago

Tomcat 9 on Ubuntu 20.04: Install, Configure, and Start

Apache Tomcat is an open-source web server and Java servlet container. It is one of the…

17 hours ago

Automatic Updates on Ubuntu: Set Up unattended-upgrades

Keeping your Ubuntu system updated is one of the best ways to protect it. Security…

19 hours ago