shell脚本学习之数组

数组定义
方法一:

array_name=(value0 value1 value2 value3)

方法二:

array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

方法三:

array_name=(
            value0
            value1
            value2
            value3)

数组的引用
1.${array_name[n]} 获取数组第n+1个元素
2.${array_name[@]} 获取数组所有的元素
3.${array_name[*]} 获取数组所有的元素
4.${#array_name[n]} 获取数组第n+1个元素的长度
5.${#array_name[@]} 获取数组元素个数
6.unset array[n] 删除第n+1个元素
7.unset array 删除数组
数组的替换
方法一:不改变原数组{arrary[@]/old/new}

[root@jiangpeisi shell]# echo ${array1[@]/php/lua}
lua c++ python java

[root@jiangpeisi shell]# array3=${array1[@]/php/lua}

[root@jiangpeisi shell]# echo ${array3[@]}
lua c++ python java

方法二:改变原数组array=([1]=new1 [2]=new2 [3]=new3)

[root@jiangpeisi shell]# array1=([1]=lua [2]=php)
[root@jiangpeisi shell]# echo ${array1[@]}
lua php

数组遍历
方法一:通过元素遍历

array1=(php c++ python java)
for var in ${array1[@]};
do
    echo $var
done

[root@jiangpeisi shell]# sh array.sh 
php
c++
python
java

方法二:通过下标遍历

array1=(php c++ python java)
for i in "${!array1[@]}";
do
    printf "${array1[$i]}\n"
done

[root@jiangpeisi shell]# sh array.sh 
php
c++
python
java

方法三:使用while循环遍历数组

array1=(php c++ python java)
i=0
while [ $i -lt ${#array1[@]} ]
do
    echo ${array1[$i]}
    let i++
done
[root@jiangpeisi shell]# sh array.sh 
php
c++
python
Java