shell脚本之函数及数组
- 一函数
- 1.1函数的作用
- 1.2函数的基本格式
- 1.3函数的注意事项
- 1.4函数调用的方法
- 1.5函数的返回值
- 1.6函数的传参
- 1.7在外部调用函数
- 1.8函数变量的作用范围
- 1.9函数的递归
- 二.数组
- 2.1shell数组的定义
- 2.2定义属组的方式
- 2.3数组的数据类型
- 2.4获取数组的数据列表
- 2.5获取组长度
- 2.6获取数组下对应的值
- 2.7数组的常用操作
- 2.7.1数组的遍历
- 2.7.2数组的替换
- 2.7.3数组删除和指定下标的值删除
- 2.7.4数组追加元素
- 2.7.5查看所有数组--declare -a
- 三.冒泡排序
一函数
1.1函数的作用
- 语句决定义成函数约等于别名,定义函数,再引用函数
- 封装的可重复利用具有特定功能的代码
1.2函数的基本格式
方法一:
【function】函数名 (){
命令序列
【return x】 #使用return或者exit可以显示的结束函数
}
方法二:
函数名(){
命令序列
}
1.3函数的注意事项
1.直接写函数中调用
2.函数直接写函数名同名函数后一个生效
3.调用函数一定要先定义
4.只要先定义了调用的其他函数定义顺序无关
1.4函数调用的方法
示例1:
示例2:
1.5函数的返回值
-
return表示退出函数并返回一个退出值,脚本中可以使用$?变量表示该值
-
函数的使用规则
- 函数一结束就取反回值,因为$?变量只返回执行的最后一条命令的 退出状态
- 退出状态码必须是0~255 ,超出时值将为除以256取余
示例:
1.6函数的传参
在shell中,调用函数时可以向其传递参数。在函数体内部,通过$n的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数…即使用位置参数来实现参数传递
示例
1.7在外部调用函数
在外部调用命令需要先source一下。然后调用函数,再调用函数中的变量
实例
示例2:在脚本中调用
1.8函数变量的作用范围
- 函数在shell脚本中仅在当前shell环境中有效
- shell脚本中变量默认全局有效‘
- 将变量限定在函数内部使用local命令
示例:
示例2:
1.9函数的递归
函数调用自己本身的函数
实例:求任意数的阶乘
二.数组
2.1shell数组的定义
- 数组中可以存放多个值。bash shell只支持一维数组
- 数据元素的下标由0开始
- shell数组用括号来表示,元素用“空格”符号分割开
- 在shell语句中,使用,遍历数组的时候,数组格式要写成 a r r [ @ ] 或 {arr[@]}或 arr[@]或{arr[*]}
2.2定义属组的方式
方法一;
方法二:
2.3数组的数据类型
- 数值类型
- 字符类型:使用“”或‘’定义
示例:
2.4获取数组的数据列表
示例:
2.5获取组长度
2.6获取数组下对应的值
2.7数组的常用操作
2.7.1数组的遍历
2.7.2数组的替换
2.7.3数组删除和指定下标的值删除
2.7.4数组追加元素
方法一:直接使用下标进行元素追加
方法二:将数组的长度作为下标进行追加元素
方法三:使用+进行追加