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

How To Create A Self-Signed SSL Certificate Using Bash And OpenSSL

Introduction A self-signed SSL certificate is a certificate that is created and signed by the…

16 minutes ago

How To Debug Bash Scripts Using bash -x And set Commands

Introduction Debugging is an important part of Bash scripting. When a script does not work…

5 hours ago

How To Use Cron Jobs With Bash Scripts For Automation

Introduction Cron jobs are used in Linux to run commands or Bash scripts automatically at…

6 hours ago

How To Use Pipes In Bash Scripts For Command Chaining

Introduction Pipes are an important feature in Linux and Bash scripting. A pipe allows you…

7 hours ago

How To Use grep, awk, And sed In Bash Scripts

Introduction The grep, awk, and sed commands are powerful text-processing tools in Linux. They are…

8 hours ago

How To Work With Files And Directories Using Bash Scripts

Introduction Working with files and directories is one of the most important skills in Bash…

9 hours ago