函数与数组

shell函数

函数的作用

函数的定义(两种方式)
第一种
function 函数名 {
command
} //这是一种规范写法

第二种
函数名( ){ //最常用因为最简洁
command
}

函数定义完之后并不会自动执行,需要调用才行,好处在于可以写一段功能代码作为函数,有需要就直接调用
定义的时候哪怕出现语法错误也没关系,不调用就不会报错
当然我们写函数最终目的还是为了调用,为了实现某个功能块

函数返回值:
return表示退出函数并返回一个退出值,脚本中可以用 ? 变 量 显 示 该 值 使 用 原 则 : 1 、 函 数 一 结 束 就 取 返 回 值 , 因 为 ?变量显示该值 使用原则: 1、函数一结束就取返回值,因为 ?使:1?变量只返回执行的最后一条命令的退出状态码
2、退出状态码必须是0~255,超出时值将为取余256

444 % 256

函数的调用
直接在脚本里定义函数的代码块后写函数名即可完成调用

#!/bin/bash
function fun1 {
        //定义了一个函数叫做fun1
echo "this is a function!"    //函数体的功能是打印"this is a function!
}

fun1    //直接写函数名就会运行函数体内的代码

[root@server myscripts]# . fun.sh

this is a function!

注意①:函数名必须是唯一,如果先定义了一个,再用同样的名称定义,第二个会覆盖第一个的功能,出现了你不想要的结果,所以这里一定要注意不要重名!
#!/bin/bash

f1 (){
   
echo hello
}
f1 (){
   
echo world
}
f1
[root@localhost ~]# . f1.sh 
world

注意②:调用函数之前必须先进行定义!

#!/bin/bash
f1 (){
   
echo hello
}
f3 (){
   
echo "$(f1) $(f2)"
}
f3
f2 (){
   
echo world
}

[root@localhost ~]# bash f1.sh //因为f3函数里调用了f2,调用了f3的时候并不能知道f2的定义,因为f2在f 运行之后才被定义,所以运行的脚本会报错
f1.sh:行8: f2: 未找到命令
hello

#!/bin/bash
f1 (){
   
echo hello
}
f3 (){
   
echo "$(f1) $(f2)"    //这里虽然提前调用了f2,但是f2的函数还是在运行f3之前定义的所以他能够找到
}
f2 (){
   
echo world
}
f3

注意③:不一定要在脚本开头就定义函数,只要调用之前定义就可以

如果是在其他地方嵌套调用等情况,不可以直接写函数的值,避免无法识别,可以用反撇号引起来,相当于是调用函数的结果

#!/bin/bash
f1 (){
   
echo hello
}
f2 (){
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值