概述:
概述:
本章节将讲述Linux中shell脚本编程的数组,高级字符串处理,高级变量和配置用户的环境。
一、函数和位置参数扩展
1.shift 命令实现在位置参数中的跳跃,会把最左边的参数挤掉
2.匿名函数的使用
第一篇:数组
一.数组的定义:
1.变量:存储单个元素的内存空间
2.数组:存储多个元素的连续的内存空间,相当于多个变量的集合。
3.数组名和索引
索引:编号从0开始,属于数值索引
注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持。
bash的数组支持稀疏格式(索引不连续)
4.声明数组:
declare -a ARRAY_NAME
declare -A ARRAY_NAME: 关联数组(必须先声明再使用)
二、数组元素的赋值
1.一次只赋值一个元素;
ARRAY_NAME[INDEX]=VALUE
weekdays[0]="Sunday"
weekdays[4]="Thursday"
示例:
declare -a menu 最好要先声明数组
2.一次赋值全部元素:
ARRAY_NAME=("VAL1" "VAL2" "VAL3" ...)
下面这些方法也可以:命令引用,glob通配符等
3.只赋值特定元素:
ARRAY_NAME=([0]="VAL1" [3]="VAL2" ...)
4.交互式数组值对赋值
read -a ARRAY
三、引用数组
1.引用数组元素:${ARRAY_NAME[INDEX]}
注意:省略[INDEX]表示引用下标为0的元素
2.数组的长度(数组中元素的个数):
${#ARRAY_NAME[*]}
${#ARRAY_NAME[@]}
其实,{}里面是一个变量,${#VAR}就表示变量的长度,前面学到的$#,表示传递给脚本的参数个数。
练习:
1.生成10个随机数保存于数组中,并找出其最大值和最小值
2.写一个脚本,定义一个数组,数组中的元素是/var/log目录下所有以.log结尾的文件;要统计其下标为偶数的文件中的行数之和。