shell中的自定义函数
自定义函数
基本语法
[ function ] funname[()]
{
Action;
[return int;]
}
调用直接写函数名:funname [值]
注意:
1 函数体不能为空,函数体为空会报错,里面写一条语句,比如 echo "test" 就不会报错了
2 一般function关键字可省略,其实()小括号也可以省略,具体看下面的解释和说明。
以下3种形式都对,一定要注意空格,不注意空格的话,语法会报错,我之前就是没写空格,一直报错!
()和{}之间要写空格哦
function fname() { 程序段 }
function fname { 程序段 }
fname() { 程序段 }
以上3种语法都可以!记住:function和()可以省略,但是不能同时省略function关键字和()小括号,你至少要保留其中一个,或者把2个都保留也是可以的。
应用实例
案例 1:计算输入两个参数的和(read), getSum
记住:function和()可以省略,但是不能同时省略function关键字和()小括号,你至少要保留其中一个,或者把2个都保留也是可以的。
#!/bin/bash
#自定义函数
#案例 1:计算输入两个参数的和(read), getSum
function getSum() {
MYSUM=$[$NUM1+$NUM2]
echo "2个参数的和=$MYSUM"
}
#调用getSum函数
read -p "请您输入第一个数" NUM1
read -p "请您输入第二个数" NUM2
getSum $NUM1 $NUM2
#自定义函数还有如下这种语法,function关键字可以省略
getSum2() {
MYSUM2=$[$NUM3+$NUM4]
echo "2个参数的和=$MYSUM2"
}
#调用getSum2函数
read -p "请您输入第1个数" NUM3
read -p "请您输入第2个数" NUM4
getSum2 $NUM3 $NUM4
function getSum3() {
MYSUM3=$[$NUM5+$NUM6]
echo "2个参数的和=$MYSUM3"
}
read -p "请您输入第1个数" NUM5
read -p "请您输入第1个数" NUM6
#调用getSum3函数
getSum3 $NUM5 $NUM6
#()小括号可以省略
function getSum4 {
echo "我是getSum4函数"
}
#调用getSum4函数
getSum4
#()小括号可以省略
function getSum5 {
echo "我是getSum5函数"
MYSUM5=$[$NUM7+$NUM8]
echo "2个参数的和=$MYSUM5"
}
read -p "请您输入第1个数" NUM7
read -p "请您输入第1个数" NUM8
#调用getSum5函数
getSum5 $NUM7 $NUM8
#()小括号可以省略
function myTest {
TESTSUM=$[$1+$2]
echo "命令行中的2个参数和=$TESTSUM"
echo "命令行是$0"
}
#调用myTest函数
myTest $1 $2
function test2() {
#注意:函数体不能为空,函数体为空会报错,所以为了防止报错,我就在函数体中,随便打印一句话吧
echo "我是test2函数"
}
#调用test2函数
test2