这一期将要学习case分支语句与函数,主要分为以下几个章节:,下面我们就来说一说关于shell脚本的规划与技巧?我们一起去了解并探讨一下这个问题吧!
shell脚本的规划与技巧
这一期将要学习case分支语句与函数,主要分为以下几个章节:
- case的基本语法
- 函数的定义
- 函数的使用
- 本期示例
case语句是可以同时对多个条件进行判断和处理的,下面看语法:
case $变量 in
匹配值1 )
代码块1
;;
匹配值2 | 匹配值3 | 匹配值4 )
代码块2
;;
匹配值5)
代码块3
;;
*)
代码块4
;;
esac
说明:
- case和esac是必须成对出现的,case表现case语句开始,esac表示case结束
- ;;表示一个分支结束
- 可以有多个匹配值执行同一代码块,例如上面匹配值2-4都会执行代码块2
- 匹配值可使用通配符,有一期讲过《每天2分钟学习unix/linux系统shell编程(六)》,[a-z], [1-9], [1,3,5]
- *)表示上面的匹配值都匹配不上则执行代码块4
函数就是一批shell命令或者代码的集合片段,这个代码集合片段共同完成指定的某一件事情。好处是,提高代码复用,统一的输入和输出,通俗地讲当给定一些符合条件的值,那么函数将永远给你返回一样的输出结果。一般情况下,写代码一个函数最好不要超出50行。当超出之后建议把此函数拆分成更小的单元,使用函数功能更单一,复用度更高。
写代码最怕的就是一份代码到处复制,最后弄得遍地都是功能相似或者相等的代码片段或者版本出来,后来者维护就不好维护了。而解决这个问题就是把功能相似或者相等的代码版本段功能抽离出来,形成独立的函数。
基本定义语法:
函数名字() {
代码块
echo "response"
return 0
}
说明:
- return 表示结束函数,但是后面的值只能是0-255的范围,这种返回值只是这个数值。
- echo 是返回字符串,如果接收返回值呢?下面会讲。
函数的使用,直接写出函数名字就可以,函数是可以传参数的,在函数名字后加空格带上参数就可以,这种就直接调用不接收返回,而接收返回值就要使用$(函数名 $参数1 $参数2)的方式:
#定义
hello(){
echo "hello $1"
}
#使用
hello lin
str=$(hello lin)
echo $str
输入学号输出名字,直接上代码:
#!/bin/bash
getName(){
name=""
case $1 in
"1")
name="xiao ming"
;;
"2")
name="xiao guang"
;;
"3")
name="xiao lin"
;;
"4")
name="xiao yu"
;;
*)
name="Unknown name"
;;
esac
echo $name
return 0
}
while : ;do
number=0
echo "please input you number:"
read -n 1 number
name=$(getName $number)
echo ""
echo "you is $name"
done
这一期就分享到这里感谢大家支持。
,