1、函数申明和调用
#!/bin/bash
function fun_add #定义方法1
{
echo $[ $1 + $2 ]
}
value=`fun_add $1 $2` #调用方法
echo $value
fun_dec() #定义方法2
{
echo $[ $1 - $2 ]
}
value=`fun_dec $1 $2` #向函数传递参数,此处为【反引号】,而不是单引号
echo $value
2、返回值
#!/bin/bash
double()
{
read -p "Enter a value:" value # 接收输入
value2=$[ $value * 2 ]
return $value2
}
double
echo $? #函数的返回值
echo $value2
ps:
1、获得函数的返回值,必须在函数调用完成后立马echo $?
2、函数的返回值必须在0~255之间,不然会出错
3、局部变量与全局变量
#!/bin/bash
function localfuc
{
local value=99 #局部变量,函数体内有效
}
function allfuc
{
value=99 #全局变量
}
value=10
echo $value #10
localfuc
echo $value #10
allfuc
echo $value #99
4、库函数
myfun.sh:
#!/bin/bash
function addem
{
echo $[ $1 + $2 ]
}
function decem
{
echo $[ $1 - $2 ]
}
function multem
{
echo $[ $1 * $2 ]
}
function divem
{
if [ $2 -ne 0 ]
then
echo $[ $1 / $2 ]
else
echo -1
fi
}
testmyfun.sh:
#!/bin/bash
#source myfun.sh #方法1,在当前shell的上下文中引用库
. ./myfun.sh #方法2
value1=10
value2=5
result1=`addem $value1 $value2`
result2=`decem $value1 $value2`
result3=`multem $value1 $value2`
result4=`divem $value1 $value2`
echo $result1 $result2 $result3 $result4
输出:
15 5 50 2