需求描述:
變量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
2、實現第一步所定義的功能函數
3、程序主流程的設計
完整腳本代碼如下:
#!/bin/bash
string="Bigdata process framework 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}"
}
function main {
while true; do
echo
echo "【${string}】"
echo
print_tips
read -p "Please 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"
esac
done
}
main