一.数组
数组简介
变量:用一个固定的字符串,代替一个不固定字符串。
数组:用一个固定的字符串,代替多个不固定字符串。
类型
普通数组:只能使用整数作为数组索引
关联数组:可以使用字符串作为数组索引
终极图示
图示
总结
变量切片有个索引的概念。一个索引(整数)对应一个字符。
普通数组:中的索引对应一个字符串。
关联数组:数组中的索引可以使用字符串。
1、普通数组
方法一
方法一: 一次赋一个值
数组名[下标]=变量值
方法2 一次赋多个值
array3=(`cat /etc/passwd`) 希望是将该文件中的每一个行作为一个元数赋值给数组array3
访问数组元素:
访问数组元数:
# echo ${array1[0]} 访问数组中的第一个元数
# echo ${array1[@]} 访问数组中所有元数 等同于 echo ${array1[*]}
# echo ${#array1[@]} 统计数组元素的个数
# echo ${!array2[@]} 获取数组元素的索引
# echo ${array1[@]:1} 从数组下标1开始
# echo ${array1[@]:1:2} 从数组下标1开始,访问两个元素
2、关联数组
定义关联数组:
切记
先声明关联数组
方法一
方法一: 一次赋一个值
数组名[索引]=变量值
方法二
方法二: 一次赋多个值
访问数组元素:
# echo ${ass_array2[index2]} 访问数组中的第二个元数
# echo ${ass[@]} 访问数组中所有元数 等同于 echo ${array1[*]}
# echo ${#ass[@]} 获得数组元数的个数
# echo ${!ass[@]} 获得数组元数的索引
数组和循环
1:通过循环定义和显示数组
2:通过数组统计数据
案例1:while脚本快速定义数组
案例2使用数组统计,用户shell的类型和数量
三.函数
概述
概念
函数是一段完成特定功能的代码片段(块)
在shell中定义了函数,就可以使代码模块化,便于复用代码
注意函数必须先定义才可以使用。
重点
传参 $1,$2
局部变量 local
返回值 return 即$?
1、定义函数
方法一
方法一:
函数名() {
函数要实现的功能代码
}
方法二
方法二:
function 函数名 {
函数要实现的功能代码
}
2.调用函数
语法
函数名
函数名 参数1 参数2
3、示例
需求
编写循环脚本,功能菜单
provide these tools:
show disk info(d)
show mem info(m)
show cpu info(c)
quit(q)
思路
1 编写菜单和判断.
2 添加循环
3 添加函数
示例2:阶乘函数(传参)
需求
制作函数用于阶乘
思路
1 了解阶乘概念
1*2*3*4*5=120
[root@localhost ~]# let aa=1*2*3*4*5;echo $aa
120
2 定义函数
3 引用函数
优化1:传参,让函数能够自定义
优化2:传参2,由脚本外部传递参数。
提示
函数传参能够在模块化的命令集中,添加自定义部分。参数应加在调用函数的后面。
shell脚本的参数与函数参数不同。是先将SHELL的参数传给函数,函数本身再转换到内部。