shell脚本(二):字符串处理练习

字符串处理练习

主要针对上一讲进行一个综合练习。
题目
变量string=“Bigdata process frame is Hadoop, Hasoop is an open source project”,执行脚本后,打印输出string字符串变量,并给出用户一下选项:

  1. 打印string长度
  2. 删除字符串中所有的Hadoop
  3. 替换第一个Hadoop为MapReduce
  4. 替换全部的Hadoop为MapReduce

用户输入数字1|2|3|4,可以执行对应项的功能,输入q|Q则退出交互模式。

思路

  1. 将不同的功能进行模块划分,并编写函数
    function print_tips
    function len_of_string
    function del_hadoop
    function rep_hadoop_mapreduce_first
    function rep_hadoop_mapreduce_all
    
  2. 实现第一步所定义的函数
  3. 程序主流程设计

函数模块实现


string="Bigdata process frame is Hadoop, Hadoop is an open source project"
function print_tips
{	
	echo "**************************"
	echo "(1) 打印string长度"	
	echo "(2) 删除字符串中所有的Hadoop"
	echo "(3) 替换第一个Hadoop为MapReduce"
	echo "(4) 替换全部的Hadoop为MapReduce"
	echo "**************************"
}

function len_of_string
{
	echo ${#string}
}

function del_hadoop
{
	echo ${string//Hadoop/}
}

function rep_hadoop_mapreduce_first
{
	echo ${string/Hadoop/Mapreduce}
}

function rep_hadoop_mapreduce_all
{
	echo ${string//Hadoop/MapReduce}
}

# 测试
len_of_string
del_hadoop
rep_hadoop_mapreduce_first
rep_hadoop_mapreduce_all

主流程的实现

while true
do
	echo "【string=$string】"
	echo 
	print_tips
	read -p "Pls input your choice(1|2|3|4|q|Q):" choice
	case $choice in
		1)
			len_of_string
			;;
		2)
			del_hadoop
			;;
		3)
			rep_hadoop_mapreduce_first
			;;
		4)
			rep_hadoop_mapreduce_all
			;;
		q|Q)
			exit
			;;
		*)
			echo "Error, input only in {1|2|3|4|q|Q}"
	esac
done

完整脚本

string="Bigdata process frame is Hadoop, Hadoop is an open source project"
function print_tips
{	
	echo "**************************"
	echo "(1) 打印string长度"	
	echo "(2) 删除字符串中所有的Hadoop"
	echo "(3) 替换第一个Hadoop为MapReduce"
	echo "(4) 替换全部的Hadoop为MapReduce"
	echo "**************************"
}

function len_of_string
{
	echo ${#string}
}

function del_hadoop
{
	echo ${string//Hadoop/}
}

function rep_hadoop_mapreduce_first
{
	echo ${string/Hadoop/Mapreduce}
}

function rep_hadoop_mapreduce_all
{
	echo ${string//Hadoop/MapReduce}
}

# 主流程
while true
do
	echo "【string=$string】"
	echo 
	print_tips
	read -p "Pls input your choice(1|2|3|4|q|Q):" choice
	case $choice in
		1)
			len_of_string
			;;
		2)
			del_hadoop
			;;
		3)
			rep_hadoop_mapreduce_first
			;;
		4)
			rep_hadoop_mapreduce_all
			;;
		q|Q)
			exit
			;;
		*)
			echo "Error, input only in {1|2|3|4|q|Q}"
	esac
done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值