Shell数组小手册
本文涉及内容:直接构建数组,从字符串构建数组,分隔字符串构建数组,数组大小,以及遍历数组。
数组的构建
shell数组依然从0开始,不用申明大小,可以通过下面的方式直接定义一个数组变量。
arr[0]=1
arr[1]='hello'
arr[10]=3.1415 ## 虽然是下标为10,但数组大小依然为3.
数组的访问
echo ${arr[0]}
1
echo ${arr[1]}
hello
echo ${arr[2]} # 下标2下没有元素
echo ${arr[10]}
3.1415
echo ${arr[@]} # 获得数组所有元素的行展示
1 hello 3.1415
echo ${#arr[@]} # 获得数组的大小, 这里注意一下
3
从字符串构建数组
- 通过括号中,已空格分隔的几个元素,来构建数组。
arr=(1 2 3 'hello' 4 5 3.1415)
## 或者从一个字符串变量
str='1 2 3 'hello' 4 5 3.1415'
arr=($str)
- 从其他分隔符的字符串中构建数组
思路就是先将字符串搞成以空格分隔的字符串
str='1,2,3,4,5'
str2=${str//,/ } #将str的,换成空格
arr=($str2)
echo ${arr[@]}
数组的遍历
- 通过下标遍历,${#array[@]}是数组大小,需要注意的是这种方法无法处理上面下标直接到10的情况。
for(( i=0;i<${#array[@]};i++))
do
echo ${array[i]};
done;
- range for的形式
for element in ${array[@]}
do
echo $element
done
- 用while 达到类似的效果
i=0
while [ $i -lt ${#array[@]} ]
do
echo ${ array[$i] }
let i++ ##变量自增需要通过 let
done