Wednesday, September 7, 2011
12:41 PM

Script to check for palindrome using "rev"

The command "rev" reverses the lines of the file given to it as input. we can use this command to find out whether a given string is palindrome or no.
A palindrome is any string that appears the same when read from left to right or right to left.
For Eg:
mom  : will be same if we read it left to right or right to left, hence it is a palindrome.
tree: will be read as eert if read from right to left which is different from tree hence the string is not a palindrome.

The command rev takes the lines of file given as input and prints them in reverse.
For eg:
If we have a file named "one" with contents  "The weather has been cloudy "

$ rev one 
yduolc neeb sah rehtaew ehT

As we see rev prints the line from right to left. 

Now let us try to write a script that will use "rev" to find out if a given string is a palindrome or not. 

Note: The script creates and new file by the name temp in the present working directory  and deletes it . In case you have any other file by the name temp, it will get overwritten and deleted if you do not rename it or modify the script.


#! /bin/bash 

if [ $# -le 2 ]            # if word is not passed in command line, take it as input. 
then 
echo "Enter the word"
read input                  # Store the word in variable input 
fi 
echo $input > temp         # Write the input into a temporary file. 
reverse=`rev temp`      # Run the command rev on the temporary file . store result in another variable 
echo $reverse              
if [ $input==$reverse ]  #Compare the input and reversed string. 
then
echo "it is a palindrome"         
else 
echo "Not a palindrome"
fi
rm temp           # Remove the temporary file created. 




0 comments:

Post a Comment