Shell脚本之函数及数组

本文详细介绍了Shell编程中的函数,包括函数的作用、定义、调用方式、返回值、传参以及变量作用范围。同时,文章也讲解了数组的定义、数据类型、操作方法,如遍历、获取长度、删除和追加元素。最后提到了冒泡排序这一算法概念。
摘要由CSDN通过智能技术生成

一、函数

函数的作用

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

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

函数的基本格式

法一:

[function] 函数名 (){

命令序列

[return x]

}

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

法二:

函数名(){

命令序列

}

函数注意事项

直接写函数中调用

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

调用函数一定要先定义

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

函数调用方法

例1:

例2:

函数的返回值

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

函数的使用原则

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

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

例:

函数的传参

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

例:

外部调用函数

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

例1:

例2:在脚本中调用

函数变量的作用范围

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

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

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

例1:

例2:

函数的递归

函数调用自己本身的函数

例:求任意的阶乘

二、数组

数组的定义

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

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

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

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

定义数组的方法

法一:

数组名=(value1 value2 ... valuen)

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

法三:

数组名[0]="value"

数组名[1]="value"

数组名[2]="value"

数组的数据类型

数值类型

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

例:

获取数组的数据列表

echo ${数组名[*]}

echo ${数组名[@]}

例:

获取数组长度

echo ${数组名#[*]}

echo ${数组名#[@]}

例:

获取取数组下标对应的值

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

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

例:

数组的常用操作

数组的遍历

数组的切片

数组的替换

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

数组追加元素

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

数组名[下标]=变量

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

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

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

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

查看所有数组

declare -a

三、冒泡排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值