Shell数组
数组的定义
使用()来表示数组,元素之间采用空格分隔
array_name=(ele1 ele2 ele3 ... elen)
数组长度不固定,且不要求所有数组元素的类型必须相同
数组元素的获取
获取数组中的某个元素
${array_name[index]}
获取数组中的所有元素
${array_name[*]}
${array_name[@]}
数组长度的获取
利用@或*将数组扩展成列表,再使用#获取数组元素的个数
${#array_name[@]}
${#array_name[*]}
数组的拼接
利用@或*将数组扩展成列表,再合并到一起
array_new=(${array1[@] ${array2[@]}})
array_new=(${array1[*] ${array2[*]}})
数组的删除
删除数组元素
unset array_name[index]
删除整个数组
unset array_name
代码示例
#!/bin/bash
#数组的定义
arr1=(1 2 3)
arr2=(a b c)
arr3=(3 ! hello)
#数组元素的获取
echo arr1[0]:${arr1[0]}
echo arr2[1]:${arr2[1]}
echo arr3[2]:${arr3[2]}
echo arr2[@]:${arr2[@]}
echo arr3[*]:${arr3[*]}
#数组长度的获取
echo arr1.len:${#arr1[@]}
echo arr2.len:${#arr2[*]}
#数组的拼接
arr1_2=(${arr1[@]} ${arr2[@]})
arr2_3=(${arr2[*]} ${arr3[*]})
echo arr1_2:${arr1_2[@]}
echo arr2_3:${arr2_3[*]}
#数组的删除
unset arr1[0]
unset arr2
echo arr1:${arr1[@]}
echo arr2:${arr2[*]}
输出结果
arr1[0]:1
arr2[1]:b
arr3[2]:hello
arr2[@]:a b c
arr3[*]:3 ! hello
arr1.len:3
arr2.len:3
arr1_2:1 2 3 a b c
arr2_3:a b c 3 ! hello
arr1:2 3
arr2: