需求描述:
变量 string=“Bigdata process framework is Hadoop,Hadoop 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
脚本
#!/bin/bash
string="Bigdata process framework is Hadoop,Hadoop is an open source project"
# 打印字符串长度
function print_tips {
echo "***************************"
echo $string
echo "(1)、打印字符串长度"
echo "(2)、删除字符串中所有Hadoop"
echo "(3)、替换第一个Hadoop为Mapreduce"
echo "(4)、替换全部Hadoop为Mapreduce"
echo "***************************"
}
function len_of_string {
echo "${#string}"
}
# 删除字符串中所有的Hadoop
function del_Hadoop {
echo "${string//Hadoop/}"
}
# 替换第一个Hadoop为Mapreduce
function rep_Hadoop_Mapreduce_first {
echo "${string/Hadoop/Mapreduce}"
}
# 替换全部Hadoop为Mapreduce
function rep_Hadoop_Mapreduce_all {
echo "${string//Hadoop/Mapreduce}"
}
while true
do
echo "[string=$string]"
echo
print_tips
read -p "请输入您的选项(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 "请输入正确的选项(1|2|3|4|q|Q)"
;;
esac
done