各位看官,前几回咱们说了Linux shell编程中的结构,比如顺序结构,判断结构和循环结构。今天咱
们接着说shell编程中另外一个重要的成员:函数。
函数就某一个功能的集合。在程序设计中我们经常会遇到反复做多次事情的情况。比如看官们边听我说边
喝茶,不过这茶水是自己泡的,大家每天是不是需要自己把茶叶放到杯子中,然后去烧水,等待水烧开后,
把开水倒入杯子中,泡一会儿就可以喝了。如果现在有一个小二的人能替大家取茶叶,烧水,泡茶。大家
只需要每天去找小二,小二就会给大家泡好茶水。大家再也不需要自己第天都重复地:取茶叶,烧水,泡
茶。这个小二的主要工作是泡茶,至于怎么泡茶,看官们不需要知道,只要你叫小二,他就能给你泡好茶
水。小二的工作是泡茶,函数就像小二,它可以实现某个功能。函数的功能可以自己定义。你在函数中定
义了什么功能,他就做什么事情。就好比你叫小二,他就能给你泡茶。“小二”,哈哈哈。都有看官开始叫
小二了,不过咱们这里没有小二。看官也不要想太多,我只是打个比方来说明什么是函数。
看官们,知道函数是什么后,我们来看看函数的”模样“,也就是函数的形式。函数有两种形式,形式1为:
function FunctionName{}.形式2为:FunctionName(){}.当然了,在实际的程序中需要使用空格和换行来分
开这些格式,这样方便我们阅读程序。不过,对机器来说,分不分都是一样的。形式中的函数名最好叫和
函数功能相关的名字,这样方便大家看着名字就能知道这个函数有什么功能。比如刚才咱们举的例子中,
小二可以做泡茶的工作,泡茶可以当作是函数的功能,小二可以当作是函数的名字。不过”小二“这个名字
取的不好,从名字上看不上他能做泡茶的工作。形式中大括号里面的内容需要自己定义,它可以是任何
Linux中的命令,或者我们前几回说过的结构。总之,你想让函数有什么功能,你就把可以实现功能的程
序放到这对大括号中。”来个例子呗“。看官例子来了。
#! /bin/bash echo "-----------------the starting line of shell-----------------" showJJB() { i=1 j=1 while [ $i -lt 10 ] do while [ $j -le $i ] do echo -e "$j x $i=$[$i * $j] \c" j=$[$j + 1] done echo j=1 i=$[$i + 1] done } showJJB echo "-----------------the ending line of shell-----------------"
新建立一个名叫t1.sh的脚本文件,把上面的内容输入到文件中,保存后,给文件加上执行权限,然后在
终端中运行该文件,并用依据程序提示输入内容得到以下结果:
-----------------the starting line of shell-----------------
1 x 1=1
1 x 2=2 2 x 2=4
1 x 3=3 2 x 3=6 3 x 3=9
1 x 4=4 2 x 4=8 3 x 4=12 4 x 4=16
1 x 5=5 2 x 5=10 3 x 5=15 4 x 5=20 5 x 5=25
1 x 6=6 2 x 6=12 3 x 6=18 4 x 6=24 5 x 6=30 6 x 6=36
1 x 7=7 2 x 7=14 3 x 7=21 4 x 7=28 5 x 7=35 6 x 7=42 7 x 7=49
1 x 8=8 2 x 8=16 3 x 8=24 4 x 8=32 5 x 8=40 6 x 8=48 7 x 8=56 8 x 8=64
1 x 9=9 2 x 9=18 3 x 9=27 4 x 9=36 5 x 9=45 6 x 9=54 7 x 9=63 8 x 9=72 9 x 9=81
-----------------the ending line of shell-----------------
看官们,这个例子中定义了一个叫showJJB的函数,定义的形式,使用的是形式2.我们为了美观,在该形
式中使用了换行。这个例子中showJJB就是这个函数的名字,通过这个名字,我们就能知道,该函数是用
来显示九九乘法表的。大括号中的内容是我们自己写的,主要功能是显示九九乘法表。通过这个例子,大
家清楚地看到了函数的样子。
各位看官,关于函数的内容,咱们今天就说到这里,欲知后事如何,且听下回分解。