How to check if a string ends with another in Bash
In this tutorial, we are going to learn about how to check if a string ends with another string in Bash or UNIX shell.
Consider, we have the following string:
name="ruby"Now, we need to check if the last character (“by”) of the above string is matching with another substring/word.
Checking the string ends with another
We can use the double equals (==) comparison operator in bash, to check if a string ends with another substring.
Here is an example:
name="ruby"
if [[ $name == *by ]] # * is used for pattern matching
then
echo "true";
else
echo "false"; fiOutput:
trueIn the above code, if a $name variable ends with by then the output is “true” otherwise it returns “false”.
Similarly, you can also check the last three characters of a string like this:
name="ruby"
if [[ $name == *uby ]] # * is used for pattern matching
then
echo "true";
else
echo "false"; fiOutput:
trueWe can also use the parameter expansion syntax to access the last 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.


