shell字符串处理实例

2021-09-15 17:39:56 浏览数 (1)

一、需求描述

变量string="Bigdata process framework is Hadoop,Hadoop is an open source project"

执行脚本后,打印输出string字符串变量,并给出用户以下选项:

(1)打印srting长度 (2)删除字符串中所有的Hadoop (3)替换第一个Hadoop为Mapreduc (4)替换全部Haddop为Mapreduce

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

二、思路分析

将不同的功能模块划分,并编写函数 function len_of_string function del_hadoop function rep_hadoop_mapreduce_first function rep_hadoop_mapreduce_all

三、程序代码
  1. #!/bin/bash  
  2. string="Bigdata process framework is Hadoop,Hadoop is an open source project"
  3. function print_tips  
  4. {  
  5. echo "**********************************"
  6. echo "(1)打印srting长度"
  7. echo "(2)删除字符串中所有的Hadoop"
  8. echo "(3)替换第一个Hadoop为Mapreduc"
  9. echo "(4)替换全部Haddop为Mapreduce"
  10. echo "**********************************"
  11. }  
  12. function len_of_string  
  13. {  
  14. echo "${#string}"
  15. }  
  16. function del_hadoop  
  17. {  
  18. echo "${string//Hadoop/}"
  19. }  
  20. function rep_hadoop_mapreduce_first  
  21. {  
  22. echo "${string/Hadoop/Mapreduce}"
  23. }  
  24. function rep_hadoop_mapreduce_all  
  25. {  
  26. echo "${string//Hadoop/Mapreduce}"
  27. }  
  28. while true  
  29. do
  30. echo "【string=$string】"
  31. echo
  32.     print_tips  
  33.     read -p 'Pls input your choice(1|2|3|4|q|Q):' choice  
  34. case $choice in  
  35.         1)  
  36.             len_of_string  
  37.             ;;  
  38.         2)  
  39.             del_hadoop  
  40.             ;;  
  41.         3)  
  42.             rep_hadoop_mapreduce_first  
  43.             ;;  
  44.         4)  
  45.             rep_hadoop_mapreduce_all  
  46.             ;;  
  47.         q|Q)  
  48. exit
  49.             ;;  
  50.         *)  
  51. echo "Error,input only in {1|2|3|4|q|Q}"
  52.             ;;  
  53.     esac  
  54. done  

0 人点赞