shell函数

目录

一、shell函数概述

 二、函数的作用

三、定义函数

        查看函数:

四、函数的返回值

五、函数传参

六、函数变量的作用范围

七、函数的递归


一、shell函数概述

函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程,它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序的一部分。

函数和shell程序区别

shell程序在子shell中运行

函数在当前Shell中运行。因此在当前Shell中,函数可对shell中变量进行修改

 二、函数的作用

        避免代码重复 还能将大工程量的代码分割成多个小的代码模块 方便调用 使代码更简洁 可读性更强

三、定义函数

        格式1、

function 函数名  {
    命令序列
}

        格式2、

函数名 (){
	命令序列
}

        调用函数:直接在主代码中使用函数名 即可调用函数定义的代码        

        查看函数:

# 查看当前已定义的函数名 
declare -F 
# 查看当前已定义的函数定义 
declare -f 
# 查看指定当前已定义的函数名 
declare -f func_name 
# 查看当前已定义的函数名定义 
declare -F func_name
 

四、函数的返回值

return表示退出函数并返回一个退出值,脚本中可以用$?变量显示该值

使用原则:
(1) 函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
(2) 退出状态码必须是0~255,超出时值将为除以256取余

函数的执行结果返回值:

使用echo等命令进行输出

函数体中调用命令的输出结果

函数的退出状态码:

默认取决于函数中执行的最后一条命令的退出状态码

例子

五、函数传参

通过在 调用函数时,后面跟位置参数;在函数体里使用 $1 $2 来引用函数后面跟的位置参数

函数体里面的 $1$2 代表的是调用函数时,函数名后面跟的 第一个 第二个 位置参数

.函数外的 $1 $2 代表的是执行脚本时,脚本后面跟的 第一个 第二个 位置参数

六、函数变量的作用范围

  • 函数在Shell脚本中仅在当前Shell环境中有效
  • Shell脚本中变量默认全局有效
  • 将变量限定在函数内部使用local命令

案例

#!/bin/bash
#函数变量的作用范围

myfun() {
  a=8
  local a=10
  echo $a
}


####### main ########
a=9
myfun
echo $a

七、函数的递归

  • 函数调用自己本身的函数
  • 递归调用,实现阶乘的计算

递归目录

        

  • 19
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值