在Shell脚本中,将一些需重复使用的操作,定义为公共的语句块,即可称为函数。通过使用函数,可以使脚本代码更加简洁,增强易读性,提高Shell脚本的执行效率。
函数的定义方法
function 函数名 {
命令序列
.. ..
}
格式2:
函数名() {
命令序列
.. ..
}
函数的调用
直接使用“函数名”的形式调用,如果该函数能够处理位置参数,则可以使用“函数名 参数1 参数2 .. ..”的形式调用。
注意:函数的定义语句必须出现在调用之前,否则无法执行。
测试语法格式
[root@sv7 ~]# a() { #定义函数
echo abc
echo xyz
}
[root@sv7 ~]# a #调用函数
编写mycolor.sh脚本
1)任务需求及思路分析
用户在执行时提供2个整数参数,这个可以通过位置变量$1、$2读入。
调用函数时,将用户提供的两个参数传递给函数处理。
颜色输出的命令:echo -e "\033[32mOK\033[0m";
3X为字体颜色,4X为背景颜色,9x为字体高亮色,"\033[43;31mOK\033[0m"可以同时修改背景与字体颜色2)编写shell脚本,利用函数与echo指令,输出彩色字体
[root@sv7 ~]# vim mycolor.sh
#!/bin/bash
cecho() {
echo -e "\033[$1m$2\033[0m"
}
cecho 32 OK
cecho 33 OK
cecho 34 OK
cecho 35 OK
[root@sv7 ~]# chmod +x mycolor.sh
[root@sv7 ~]# ./mycolor.sh #显示不同颜色的ok
OK
OK
OK
OK
函数减法计算案例
[root@sv7 ~]# vim add.sh
#!/bin/bash
add() {
echo "$1 + $2 = $[$1+$2]"
echo "$1 - $2 = $[$1-$2]"
echo "$1 * $2 = $[$1*$2]"
echo "$1 / $2 = $[$1/$2]"
}
add 2 2
add 3 5
add 8 9
[root@sv7 ~]# chmod +x add.sh
[root@sv7 ~]# ./add.sh
2 + 2 = 4
2 - 2 = 0
2 * 2 = 4
...