Linux Shell脚本之函数及数组

目录

Shell脚本之函数及数组

一、函数

函数的作用

函数的基本格式

函数注意事项

函数调用方法

函数的返回值

 函数的传参

外部调用函数 

 函数变量的作用范围

函数的递归

二、数组 

数组的定义

定义数组的方法

数组的数据类型 

 获取数组的数据列表

获取数组长度 

获取取数组下标对应的值 

数组的遍历

数组的切片 

数组的替换

 数组删除和指定下标的值删除

数组追加元素

查看所有数组

三、冒泡排序


Shell脚本之函数及数组

一、函数

函数的作用

语句块定义成函数约等于别名,定义函数,再引用函数

封装的可重复利用的具体特定功能的代码

函数的基本格式

法一:

[function]   函数名 (){

        命令序列

        [return  x]

}

                        //使用return或者exit可以显示的结束函数

法二:

函数名(){

        命令序列

}

函数注意事项

直接写函数中调用

函数直接写函数名同名函数后一个生效

调用函数一定要先定义

只要先定义了调用的其他函数定义顺序无关

函数调用方法

例1:

Linux Shell脚本之函数及数组_第1张图片

Linux Shell脚本之函数及数组_第2张图片

 例2:

Linux Shell脚本之函数及数组_第3张图片

函数的返回值

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

函数的使用原则

函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码

退出状态码必须是0~255,超出时值将为除以256取余

例:

Linux Shell脚本之函数及数组_第4张图片

 函数的传参

在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数…即使用位置参数来实现参数传递

例:

Linux Shell脚本之函数及数组_第5张图片

Linux Shell脚本之函数及数组_第6张图片

外部调用函数 

在外部调用命令需要先source一下,然后再调用函数,再调用函数中的变量

例1:

Linux Shell脚本之函数及数组_第7张图片

Linux Shell脚本之函数及数组_第8张图片

 例2:在脚本中调用

 函数变量的作用范围

函数在shell脚本中仅在当前shell环境中有效

shell脚本中变量默认全局有效

将变量限定在函数内部使用local命令

例1:

Linux Shell脚本之函数及数组_第9张图片

 例2:

Linux Shell脚本之函数及数组_第10张图片

函数的递归

 函数调用自己本身的函数

例:求任意的阶乘

Linux Shell脚本之函数及数组_第11张图片

二、数组 

数组的定义

数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组)

数组元素的下标由 0 开始。

Shell 数组用括号来表示,元素用"空格"符号分割开

在shell语句中,使用、遍历数组的时候,数组格式要写成 ${arr[@]} 或 ${arr[*]}

定义数组的方法

法一:数组名=(value1 value2 ... valuen)

法二: 数组名=([0]=value1 [1]=value2 [2]=value3 ...)

法三:

数组名[0]="value"

数组名[1]="value"

数组名[2]="value"

Linux Shell脚本之函数及数组_第12张图片

数组的数据类型 

数值类型

字符类型:使用" " 或 ' ' 定义

例:

Linux Shell脚本之函数及数组_第13张图片

 获取数组的数据列表

echo  ${数组名[*]}

echo  ${数组名[@]}

例:

Linux Shell脚本之函数及数组_第14张图片

获取数组长度 

echo  ${数组名#[*]}

echo  ${数组名#[@]}

例:

Linux Shell脚本之函数及数组_第15张图片

获取取数组下标对应的值 

数组名=(元素0  元素1  元素2  ...)                        //定义数组

echo   ${数组名[索引值]}                                         //输出数组索引值对应的元素,索引值从0开始

例:

Linux Shell脚本之函数及数组_第16张图片

数组的常用操作

数组的遍历

Linux Shell脚本之函数及数组_第17张图片

Linux Shell脚本之函数及数组_第18张图片

数组的切片 

Linux Shell脚本之函数及数组_第19张图片

Linux Shell脚本之函数及数组_第20张图片

数组的替换

Linux Shell脚本之函数及数组_第21张图片

 数组删除和指定下标的值删除

Linux Shell脚本之函数及数组_第22张图片

数组追加元素

法一:直接使用下标进行元素追加

数组名[下标]=变量

Linux Shell脚本之函数及数组_第23张图片

法二:将数组的长度作为下标进行追加元素

数组名[${数组名[@]}] =变量名

Linux Shell脚本之函数及数组_第24张图片

 法三:使用 “ + - ” 进行追加

数组名+=(变量1  变量2)

Linux Shell脚本之函数及数组_第25张图片

查看所有数组

declare -a

Linux Shell脚本之函数及数组_第26张图片

三、冒泡排序

Linux Shell脚本之函数及数组_第27张图片

 

你可能感兴趣的:(linux,bash,运维)