本文介绍shell中数组的使用方式,包括创建数组、获取元素、增加元素、替换元素、获取元素个数、删除元素、遍历数组等操作。
文中source ./publicFunctions.sh 中是个人总结的部分函数
splitLine = 指的是打印50个= 作为分隔行
代码
#!/bin/bash
source ./publicFunctions.sh
splitLine =
# 创建数组,使用空格间隔元素
array_a=(2 3 4 5)
echo "当前数组:"${array_a[*]}
splitLine =
# 获取数组元素,下标从0开始
echo "数组内第二个元素是:"${array_a[1]}
splitLine =
# 增加元素
echo "向数组内增加元素9,如果使用现有下标,
会替换当前值,使用大于数组大小的下标
,会增加元素:"
array_a[4]=9
echo "当前数组:"${array_a[@]}
splitLine =
# 替换元素
array_a[1]=8
echo "当前数组:"${array_a[@]}
splitLine =
# 获取元素个数,在数组名前加丼号:#
echo "当前数组个数:"${#array_a[@]}
splitLine =
# 删除元素
echo "删除第三个元素:4"
unset array_a[2]
echo "获取当前第三个元素,会发现当前元素值是空:"${array_a[2]}
echo "当前数组个数,删除元素后,数组大小变小:"${#array_a[@]}
splitLine =
# 遍历数组
echo "遍历数组:"
for ele in ${array_a[@]}
do
echo "当前元素:"${ele}
done
splitLine =
# 删除完数组元素后,可见通过#得到的数组个数与实际的数组内容不符,
# 因为在统计数组个数的时候,空元素不计入内,所以需要重新获取最新
# 数组内容
array_a_new=()
array_a_new_len=0
for ele in ${array_a[@]}
do
array_a_new[${array_a_new_len}]=${ele}
array_a_new_len=$((${array_a_new_len}+1))
done
echo "当前数组:"${array_a_new[@]}
结果
==================================================
当前数组:2 3 4 5
==================================================
数组内第二个元素是:3
==================================================
向数组内增加元素9,如果使用现有下标,
会替换当前值,使用大于数组大小的下标
,会增加元素:
当前数组:2 3 4 5 9
==================================================
当前数组:2 8 4 5 9
==================================================
当前数组个数:5
==================================================
删除第三个元素:4
获取当前第三个元素,会发现当前元素值是空:
当前数组个数,删除元素后,数组大小变小:4
==================================================
遍历数组:
当前元素:2
当前元素:8
当前元素:5
当前元素:9
==================================================
当前数组:2 8 5 9
参考:
http://c.biancheng.net/view/810.html
http://c.biancheng.net/view/812.html
http://c.biancheng.net/view/818.html
http://c.biancheng.net/view/819.html