shell函数
一、shell函数
【1】shell函数的格式
(1)定义一个函数
(2)全局声明函数
【2】递归函数
(1)定义
(2)特点
(3)举例说明
二、shell数组
【1】数组的作用
【2】定义数组
(1)数值类数组的定义
(2)字符串类型数组
(3)一般定义shell数组有四种写法:
【3】shell数组的长度
(1)数组元素、下标、长度之间的关系
(2)数组长度的应用
【4】冒泡排序法
【5】数组的切片、替换、删除
(1)数组的切片
(2)数组的替换
(3)数组的删除
一、shell函数
函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,Shell 也支持函数。Shell 函数必须先定义后使用。
【1】shell函数的格式
(1)定义一个函数
Shell 函数返回值只能是整数,一般用来表示函数执行成功与否,0表示成功,其他值表示失败。
如果 return 其他数据,比如一个字符串,往往会得到错误提示:“需要数字参数”。
调用函数只需要给出函数名,不需要加括号。如下所示:
(2)全局声明函数
如果你希望直接从终端调用函数,可以将函数定义在主目录下的 .profile 文件,这样每次登录后,在命令提示符后面输入函数名字就可以立即调用
【2】递归函数
(1)定义
递归就是程序不断调用自身,递归方法就是方法直接或间接调用自身的方法。自己调用自己
(2)特点
1】反复执行的过程(调用自身)
2】结束反复执行过程的条件(方法跳出点)
(3)举例说明
写一个shell脚本,列举出/var/log/下所有的文件,使用层次性输出。
自定义递归函数,输出/var/log目录下的所有目录或文件
二、shell数组
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。
数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。那么shell中数组是怎么定义的呢,我们来看两种数据类型:一是数值类型,二是字符串类型;虽然shell本身是弱类型的,但也可以这么区分。
【1】数组的作用
获取数组的长度
获取元素的长度
遍历元素
元素切片
元素替换
元素删除
【2】定义数组
(1)数值类数组的定义
在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
(2)字符串类型数组
同样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,同样使用“空格”来隔开:
(3)一般定义shell数组有四种写法:
【3】shell数组的长度
(1)数组元素、下标、长度之间的关系
(2)数组长度的应用
1】求出一个数组中的最大值
【4】冒泡排序法
通俗一点来说就是要交换两个瓶子中的水,必须找一个空瓶子作为媒介,根据一定的条件就可以换过来。
举例说明
【5】数组的切片、替换、删除
定义一组数组