by Sai gowtham

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"; fi

Output:

true

In 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"; fi

Output:

true

We 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.

Top Udemy Courses

JavaScript - The Complete Guide 2021 (Beginner + Advanced)
JavaScript - The Complete Guide 2021 (Beginner + Advanced)
64,026 students enrolled
52 hours of video content
View Course
React - The Complete Guide (incl Hooks, React Router, Redux)
React - The Complete Guide (incl Hooks, React Router, Redux)
284,472 students enrolled
40 hours of video content
View Course
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
Vue - The Complete Guide (w/ Router, Vuex, Composition API)
152,857 students enrolled
48.5 hours of video content
View Course