shell中函数的使用
函数是一个脚本代码块,你可以对它进行自定义命名,并且可以在脚本中任意位置使用这个函数。如果想要这个函数,只要调用这个函数的名称就可以了。使用函数的好处在于模块化以及代码可读性强。 (1).函数的创建语法 函数的创建方法一: function 函数名称 { 命令 } 函数的创建方法二: 函数名称() { 命令 } 注意:函数名称在当前脚本必须唯一。 调用函数的方法: 函数名称 参数1 参数2 ...... 调用函数时可以传递参数,函数中使用$1、$2......来引用传递的参数。 (2).函数的使用实例 实例1: [[email?protected] ~]# vim a.sh #!/bin/bash function fun1 { echo "hello world" } fun2() { echo $[$1+$2] } fun1 fun2 1 2 [[email?protected] ~]# sh a.sh hello world 3 实例2:如果存在相同名称的函数,以最后一个为准 [[email?protected] ~]# vim b.sh #!/bin/bash function fun1 { echo "hello world" } fun1() { echo "This is rewrite" } fun1 [[email?protected] ~]# sh b.sh This is rewrite (3).return返回值 使用return命令来退出函数并返回特定的退出码($?) [[email?protected] ~]# vim c.sh #!/bin/bash fun1() { echo "return 3" return 3 echo "why?" } fun1 [[email?protected] ~]# sh c.sh return 3 [[email?protected] ~]# echo $? 3 注意:return一般是在函数的最后一行,因为一旦执行return命令,该函数后面的命令就不执行了。 return与exit的区别:return和exit都可以返回退出码,但是不同的是,return是退出函数,而exit是退出整个脚本。 (4).函数值赋给变量 如下方实例中显示,此时的函数就相当于一个命令,需要使用$()或``调用。 [[email?protected] ~]# vim d.sh #!/bin/bash fun1() { read -p "Input a number:" num echo $[num*5] } num2=`fun1` #也可以是$(fun1) echo $num2 [[email?protected] ~]# sh d.sh Input a number:2 10 (5).外部参数传入函数 前面已经提到过,调用函数可以在后面跟随参数,函数内部可以使用$n的形式调用。 [[email?protected] ~]# vim e.sh #!/bin/bash fun1() { echo $1 } fun2() { echo $1 } fun3() { echo $1 } fun1 $1 fun2 /root/a.sh fun3 5 [[email?protected] ~]# sh e.sh hello hello /root/a.sh 5 (6).函数的参数 在一个脚本当中,函数外的参数,函数可以直接调用,并且函数内的参数,只要运行过函数,外部也可以直接调用。 [[email?protected] ~]# vim f.sh #!/bin/bash num=5 fun1() { num2=$[num*10] } fun1 echo $num2 [[email?protected] ~]# sh f.sh 50 注意:脚本内的参数仅限脚本内使用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |