How to check if a string starts with another in Bash
In this tutorial, we are going to learn about how to check if a string starts with another string in Bash or UNIX shell.
Consider, we have the following string:
name="ruby"
Now, we need to check if the first two characters (“ru”) of the above string is matching with another substring.
Checking the string starts with another
We can use the double equals (==
) comparison operator in bash, to check if a string starts with another substring.
Here is an example:
name="ruby"
if [[ $name == ru* ]] # * is used for pattern matching
then
echo "true";
else
echo "false"; fi
Output:
true
In the above code, if a $name
variable starts with ru
then the output is “true” otherwise it returns “false”.
Similarly, you can also check the first three characters of a string like this:
name="ruby"
if [[ $name == rub* ]] # * is used for pattern matching
then
echo "true";
else
echo "false"; fi
Output:
true
We can also use the parameter expansion syntax to access the first n characters from a string instead of typing manually.
name="ruby"
if [[ $name == ${name:-3} ]] # * is used for pattern matching
then
echo "true";
else
echo "false"; fi
${name:-3} : it gets the last three characters from a string.