加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

函数的使用-Linux

发布时间:2022-11-18 14:01:05 所属栏目:Linux 来源:转载
导读: 函数的使用
函数是一个脚本代码块,你可以对它进行自定义命名linux feof函数,并且可以在脚本中任意位置使用这个函数,要使用这个函数,只要使用这个函数名称就可以了。使用函数的好处:模

函数的使用

函数是一个脚本代码块,你可以对它进行自定义命名linux feof函数,并且可以在脚本中任意位置使用这个函数,要使用这个函数,只要使用这个函数名称就可以了。使用函数的好处:模块化,代码可读性强。

函数创建语法

方法1:

function name {

commands

}

注意:name是函数唯一的名称

方法2:name后面的括号表示你正在定义一个函数

name(){

commands

}

调用函数语法:

函数名参数1 参数2 …

调用函数时,可以传递参数。在函数中用1、2…来引用传递的参数

函数的使用

例1: [root@Linux 1 ~]# cat fun1.sh

#!/bin/bash
function fun_1 {#定义函数
echo "this is function"
}
fun1#调用函数

注意:函数名的使用,如果在一个脚本中定义了重复的函数名,那么以最后一个为准 [root@Linux 1 ~]# vimfun2.sh

#!/bin/bash
function fun1 {
echo "this is function"
}
function fun1 {
echo "this is 2222222"
}
fun1

[root@Linux 1 ~]# bash fun2.sh

this is 2222222

返回值

使用return命令来退出函数并返回特定的退出码

例1:

[root@Linux 1 ~]# vim fun3.sh

#!/bin/bash
function fun1 {
echo "this is function"
 
ls /etc/passwd
return 3
echo "我不会被执行"
}
fun1

[root@Linux 1 ~]# bash fun3.sh #查看结果

this is function

/etc/passwd

[root@Linux 1 ~]# echo $?

3

注:状态码的取值范围(0~255)

exit 数字和return 数字的区别?

exit整个脚本就直接退出,返回数字

return 只是在函数最后添加一行,然后返回数字,只能让函数后面的命令不执行,无法强制退出整个脚本。

把函数值赋给变量使用

例子:函数名就相当于一个命令

[root@Linux 1 ~]# vimfun4.sh

#!/bin/bash
fun1(){
read -p "Input a number: " va
echo $[$va*5]
}
num=$(fun1)
echo current num is $num
[root@Linux 1 ~]# sh fun4.sh 
Input a value: 22
current num is 110

函数的参数传递

第一种:通过脚本传递参数给函数中的位置参数$1

[root@Linux 1 ~]# vimfun5.sh

#!/bin/bash
fun1() {
ls$1
}
fun1 $1   
#!/bin/bash
fun1() {
ls$1
}
fun1   #这里如果不写$1 ,函数获取不到$1的值

sh fun5.sh /tmp

第二种:调用函数时直接传递参数

[root@Linux 1 ~]# touch /root/a.txt#创建一个测试文件

[root@Linux 1 ~]# vimfun5.sh

#!/bin/bash
fun1(){
rm -rf $1
}
fun1 /root/a.txt

[root@Linux 1 ~]# bash fun5.sh #测试

[root@Linux 1 ~]# ls /root/a.txt

ls: 无法访问/root/a.txt: 没有那个文件或目录

第三种:函数中多参数传递和使用方法

[root@Linux 1 ~]# vimfun6.sh

#!/bin/bash
fun() {
echo $[$1*5]
echo $[$2*2]
echo $[$3*3]
}
fun 5 6$3 

[root@Linux 1 ~]# bash fun6.sh 1 2 7#测试

25

12

21

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!