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

七、函数的递归

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

递归目录

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值