linux字符串反转,shell反转字符串

本文介绍了一个使用Shell脚本实现字符串反转的示例,并在反转过程中实现了字符大小写的转换。通过定义函数的方式,增强了脚本的可读性和可维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

反转字符串

#!/bin/sh

#test.sh

STR=$1

LEN=${#STR}

for((i=LEN;i>=0;i--))

do

trap 'echo "第$LINENO行操作之前i=$i"' DEBUG

trap '错误 $LINENO:' ERR

trap 'echo "结尾:"' EXIT

echo -n ${STR:i:1}

done

echo -e "\n"

运行

./test.sh 123456 > test.txt

123456是传入的参数,将运行结果输出到test.txt文件。

修改后:

fun(){

a=$1

len=${#a}

echo "反转前:$a"

echo "长度是$len"

for((i=$len-1;i>=0;i--))

do

trap 'echo "execute in lineno:$LINENO, the char is ${a:i:1}"' DEBUG

echo "char:${a:i:1}"

done

echo -e "\n"

}

read -p "please input a word you want to reverse:" str

fun $str > test.txt

9be137979615

效果图

反转字符的同时字符大小写互转,将调试信息保存到log.txt文件中

fun(){

#获取参数

a=$1

#取字符串长度

len=${#a}

echo "反转前:$a"

echo "长度是$len"

#遍历字符串

for((i=$len-1;i>=0;i--))

do

#从后向前依次取得字符

c=${a:i:1}

#清空log.txt

:>log.txt

#打印调试信息

trap 'echo "execute in lineno:$LINENO, the char is $c" >> log.txt' DEBUG

trap 'error occur in lineno:$LINENO >> test.txt' ERR

trap 'echo "end:" >> test.txt' EXIT

#判断字符类型

case $c in

#为大写字母时转为小写

[[:upper:]])

echo -n $c | tr [A-Z] [a-z];;

#为小写字母时转为大写

[[:lower:]])

echo -n $c | tr [a-z] [A-Z];;

#非字母不需改变

*)

echo -n "$c" ;;

esac

done

echo -e "\n"

}

#从键盘获取参数

read -p "please input a word you want to reverse:" str

#调用函数

fun $str

9be137979615

测试

9be137979615

查看日志文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值