首先,已经有一个现成的命令rev用于做这个事情:
echo 345 | rev
其次,如果你是出于练习的目的,也可以自己写个函数:
#!/bin/bash
reverse()
{
str="$1"
len=${#str}
for ((i=$len-1; i>=0; i--))
do
echo -n ${str:i:1}
done
echo
}
reverse 345
主要知识点就是bash的字符串处理方法:
${#string} --> 获取字符串长度
${string:startPosition:length} --> 从startPosition开始截取length长度的字符串,其中字符位置从0开始(即第一个字符位置为0)
最后,才看到你要求用递归的方法,不得不重写一遍 -_- l|
#!/bin/bash
reverse()
{
str=$1
len=${#str}
[ $len -eq 1 ] && echo $str && return
echo -n ${str:len-1:1}
reverse ${str:0:len-1}
}
reverse 345