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.
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.
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
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.
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.
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.
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
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.
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.
Introduction A self-signed SSL certificate is a certificate that is created and signed by the…
Introduction Debugging is an important part of Bash scripting. When a script does not work…
Introduction Cron jobs are used in Linux to run commands or Bash scripts automatically at…
Introduction Pipes are an important feature in Linux and Bash scripting. A pipe allows you…
Introduction The grep, awk, and sed commands are powerful text-processing tools in Linux. They are…
Introduction Working with files and directories is one of the most important skills in Bash…