一、无参函数
没有参数的函数,直接调用实现某些功能。
函数编写在脚本中,与其他命令一起存储,但是函数必须定义在脚本的最开始部分;
也就是说,包含函数的脚本中,所有的函数都得定义在脚本的最开始部分;
然后在定义函数之后调用或者在其他脚本中引用这些定义的函数。
实例1、下面是一个简单的自定义函数,求1到10的和:
pg no_param_test
#!/bin/ksh
# 测试无参自定义函数
# author:_yeeXun
# date :2013-3-4 8:37:29
no_param_test() {
SUM=0
#for i in { 1..10 }
for i in 1 2 3 4 5 6 7 8 9 10
do
echo $i
SUM=`expr $SUM + $i`
i=`expr $i + 1`
if [ $i -eq 11 ]; then
echo "Sum:$SUM"
fi
done
}
no_param_test
# EOF
执行脚本:
sh no_param_test
1
2
3
4
5
6
7
8
9
10
Sum:55
二、有参函数
带参数的自定义函数,在高级语言(如,C,JAVA,C#等)中,参数都是在函数后面的括号中;
而shell中则在函数体内检查参数个数。在调用函数的时候,直接在后面跟着参数即可。
无论参数有多少个,都紧跟在函数名后面。
1、单个参数
实例2、脚本如下:
pg direc_check
#!/bin/ksh
is_directory() {
_DIR_NAME=$1
# check params
if [ $# -lt 1 ]; then
echo "is_directory:I need a directory name to check"
return 1
fi
# check
if [ ! -d $_DIR_NAME ]; then