创建函数的格式一:

functionName() {
    函数体
}

创建函数的格式二:

function functionName {
    函数体
}

调用函数的格式:

functionName


使用函数:

#!/bin/bash
menu() {
cat <<EOF
1.network; 
2.security;
3.bash shell;
4.python;
EOF
}
menu
[root@test ~]# bash func.sh 
1.network; 
2.security;
3.bash shell;
4.python;

函数返回值

函数的退出状态码是函数中最后一条命令返回的退出状态码。在函数结结束后,你可以用标准的$?变量来查看函数的退出状态码。


使用用return自定义返回状态码

return N


函数也可以接收位置参数$1 $2 ... $n $# $* $@

#!/bin/bash
cal2() {
        result=$[$1 + $2]
        echo $result
}
cal2 $1 $2
[root@test ~]# bash func2.sh 4 9
13


函数中的变量有两种类型:全局变量和局部变量

全局变量在脚本中的任何位置都可见;

局部变量只能在函数中使用

[root@test ~]# cat func3.sh 
#!/bin/bash
a=100
func1() {
        a=99
        echo $a
}
b=`func1`
echo "global variable a:$a"
echo "local variable a: $b"
[root@test ~]# bash func3.sh
global variable a:100
local variable a: 99