String Reverse
To reverse a String in Bash, iterate over the characters of string from end to start using a For loop or While Loop, and append characters such that the order of characters is reversed.
Or we can also use rev
command to reverse a string.
In this tutorial, we will write an example Bash script to demonstrate how to reverse a string using both the looping techniques, and with rev
command.
Examples
String Reverse using For Loop
In the following script, we take an input string in s
. We take a variable strlen
to store the length of the string s
.
In the For loop, we start at index i
of the last character in the string, and decrement the index during each iteration. Append the character at current index to the end of the resulting reverse string revstr
.
Once the loop is finished executing, revstr
contains reversed value of given string s
.
Example.sh
s="Hello World"
strlen=${#s}
for (( i=$strlen-1; i>=0; i-- ));
do
revstr=$revstr${s:$i:1}
done
echo "Original String : $s"
echo "Reversed String : $revstr"
Output
Original String : Hello World
Reversed String : dlroW olleH
String Reverse using While Loop
The logic remains the same as that of For Loop.
Example.sh
s="Hello World"
strlen=${#s}
i=$((strlen-1))
while [ $i -ge 0 ]
do
revstr=$revstr${s:$i:1}
i=$((i-1))
done
echo "Original String : $s"
echo "Reversed String : $revstr"
Output
Original String : Hello World
Reversed String : dlroW olleH
String Reverse using rev Command
In the following script, we use rev command to reverse a string s
.
Example.sh
s="Hello World"
revstr=`echo $s | rev`
echo "Original String : $s"
echo "Reversed String : $revstr"
Output
Original String : Hello World
Reversed String : dlroW olleH
Conclusion
In this Bash Tutorial, we have learnt how to reverse a string in Bash using For loop, While loop or rev command.