第一次和两个老头做网站标签式网站内容管理
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、shell数组
 - 1,数组的概念
 - 2.数组的定义
 
- 二、Shell数组操作
 - 1. 获取数组的所有元素的列表
 - 2. 获取数组的所有元素下标
 - 3.取数组的元素个数
 - 4. 获取数组的某个元素的值
 - 5.删除数组某个元素
 - 6.删除数组
 - 7.数组切片
 - 8.数组字符替换
 - 9.数组追加元素
 - 1.指定位置添加(直接赋予新值覆盖原来的元素)
 - 2.末尾追加元素
 - 3.进行末尾多元素追加
 - 4.直接末尾追加多元素
 
- 三、数组在函数的传参
 
一、shell数组
1,数组的概念
数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。 组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。 用于区分数组的各个元素的数字编号称为下标。数组是用于储存多个相同类型数据的集合
特点:
- 数组是相同数据类型的元素的集合。
 - 数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
 - 数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。
 
2.数组的定义
定义数组的四种方式:
 方式一:
数组名=(值0 值1 值2 ...)
 

方式二:
数组名=([0]=值 [1]=值 [2]=值 ...)
 

 方式三:
列表名="值0 值1 值2 ..."
数组名=($列表名)
 

 方式四:
数组名[0]="值"
数组名[1]="值"
数组名[2]="值"
...
 

二、Shell数组操作
1. 获取数组的所有元素的列表
echo ${数组名[@]}
echo ${数组名[*]}
 

2. 获取数组的所有元素下标
echo ${!数组名[*]} 
echo ${!数组名[@]}
 

3.取数组的元素个数
echo ${#数组名[@]} 
echo ${#数组名[*]}
 

4. 获取数组的某个元素的值
echo ${数组名[下标]}
 

5.删除数组某个元素
unset 数组名[下标]
 

6.删除数组
unset 数组名
 

7.数组切片
echo ${数组名[@]:下标:长度}
 

8.数组字符替换
echo ${数组名[@]/旧字符/新字符}
 

9.数组追加元素
1.指定位置添加(直接赋予新值覆盖原来的元素)
数组名[下标]=值
 

2.末尾追加元素
数组名[${#数组名[*]}] =新元素 
数组名[${#数组名[@]}] =新元素
 

3.进行末尾多元素追加
数组名=("${数组名[@]}" 值1 值2 ......值N)
 

4.直接末尾追加多元素
数组名+=(值1 值2 ......值N)
 

三、数组在函数的传参
要求:一个遍历数组的函数,并且让数组里的元素翻倍输出
#!/bin/bash
a=0
test(){
local arr=$@
for i in ${arr[@]}
dolet i*=2arr[$a]=$ilet a++
done
echo ${arr[@]}
}
############### main ###############
read -p "请输入一个数组:" num
arr=($num)
echo "数组翻倍后为:$(test ${arr[@]}) "
 

