函数的写法
arr=(30 20 10 60) #数组中的元素值
其中:
30为索引0
20为索引1
10为索引2
60为索引3
以此类推,不过注意索引是从0开始的,不要弄混肴了。
数组的定义
如果数组中有三个参数:1 2 3
运行数组脚本后
"$*" 为 “1 2 3” (作为一个整体使用)
"$@" 为“1” “2” “3” (分别作为单个的个体使用)
"$#" 为3 (表示参数的数量,也可以叫做长度)
实验二第二种方法命名
方法三:
列表名=“value0 valuel value2 …”
数组名=($列表名)
举例:
[root@loaclhost shuzu1]#list="1 2 3 4"
[root@loaclhost shuzu1]#arr2=($list)
[root@loaclhost shuzu1]#echo ${arr2[*]}
1 2 3 4
方法四:
数组名[0]=“value”
数组名[1]=“value”
数组名[2]=“value”
举例:
root@loaclhost shuzu1]#arr3[0]="1"
[root@loaclhost shuzu1]#arr3[1]="2"
[root@loaclhost shuzu1]#arr3[2]="3"
[root@loaclhost shuzu1]#echo ${arr3[*]}
1 2 3
二 、数组包括的数据类型
数值类型
字符类型
使用" "或‘ ’定义
三、获取数组长度
[root@loaclhost shuzu1]#arr1=(1 2 3 4 5)
[root@loaclhost shuzu1]#echo ${#arr1[*]} #也就是数组中总共多少个元素
5
四、读取某下标赋值
[root@loaclhost shuzu1]#arr1=(1 2 3 4 5)
[root@loaclhost shuzu1]#echo ${arr1[0]} #获取索引为0的元素,即第一个元素
1
[root@loaclhost shuzu1]#echo ${arr1[3]} #获取索引为3的元素,即第四个元素
4
五、数组遍历
[root@loaclhost shuzu1]#vim a.sh
#!/bin/bash
arr5=(1 2 3 4 5)
for i in ${arr5[*]} 或 for i in ${arr5[@]} #使用*或者@表示都可以
do
echo $i
done
六、数组切片
取数组中的某一段的元素的值
格式:
${数组名[@或*]}:起始位置(起始索引):长度
[root@loaclhost shuzu1]#arr1=(1 2 3 4 5)
[root@loaclhost shuzu1]#echo ${arr1[*]} #输出整个数组
1 2 3 4 5
[root@loaclhost shuzu1]#
[root@loaclhost shuzu1]#echo ${arr1[*]:0:2} #这里是从0索引开始获得往后两位元素的值
1 2
[root@loaclhost shuzu1]#echo ${arr1[*]:2:2} #获取从索引2开始往后的两位元素的值
3 4
七、数组替换
临时替换或者永久替换
格式:
$(数组名[@或*]/查找字符/替换字符}
[root@loaclhost shuzu1]#arr1=(1 2 3 4 5)
[root@loaclhost shuzu1]#echo ${arr1[*]/4/66} #将数组arr1中的元素4替换为66,这只是临时替换,并不是永久替换
1 2 3 66 5
[root@loaclhost shuzu1]#echo ${arr1[*]} #原来的数组中的元素的值并不会改变
1 2 3 4 5
[root@loaclhost shuzu1]#arr1=(${arr1[*]/4/66}) #如果想要永久替换的话,可通过重新赋值实现
[root@loaclhost shuzu1]#echo ${arr1[*]}
1 2 3 66 5
八、删除数组
使用unset删除数组
[root@loaclhost shuzu1]#unset arr1
[root@loaclhost shuzu1]#echo ${arr1[*]}
删除数组中的某个索引对应的元素的值
[root@loaclhost shuzu1]#arr1=(1 2 3 4 5)
[root@loaclhost shuzu1]#echo ${arr1[*]}
1 2 3 4 5
[root@loaclhost shuzu1]#unset arr1[2] #删除索引2的对应的元素值
[root@loaclhost shuzu1]#echo ${arr1[*]}
1 2 4 5
指定索引号删除
九、追加数组中的元素
当想要在数组中原有的元素后面再追加一些元素的话,可以使用如下方法实现追加:
方法一:
[root@loaclhost shuzu1]#arr1=(1 2 3 4 5)
[root@loaclhost shuzu1]#echo ${arr1[*]}
1 2 3 4 5 #这是原始的数组中的各元素的值,一直到索引4结束
--------------------------------------------------------------------------------
[root@loaclhost shuzu1]#arr1[5]=6 #此时追加数组索引5对应的元素值为6
[root@loaclhost shuzu1]#echo ${arr1[*]}
1 2 3 4 5 6 #发现数组的索引5位置上的元素已经追加成功