Bash 阵列分配

示例

清单分配

如果您熟悉Perl,C或Java,您可能会认为Bash会使用逗号分隔数组元素,但是事实并非如此。相反,Bash使用空格:

 # Array in Perl
 my @array = (1, 2, 3, 4);
 # Array in Bash
 array=(1 2 3 4)

创建一个包含新元素的数组:

array=('first element' 'second element' 'third element')

下标分配

创建带有显式元素索引的数组:

array=([3]='fourth element' [4]='fifth element')

按索引分配

array[0]='first element'
array[1]='second element'

按名称分配(关联数组)

4.0
declare -A array
array[first]='First element'
array[second]='Second element'

动态分配

从其他命令的输出创建一个数组,例如,使用seq获得1到10的范围:

array=(`seq 1 10`)

脚本输入参数的赋值:

array=("$@")

循环内分配:

while read -r; do
    #array+=("$REPLY")     # Array append
    array[$i]="$REPLY"     # Assignment by index
    let i++                # Increment index 
done < <(seq 1 10)  # command substitution
echo ${array[@]}    # output: 1 2 3 4 5 6 7 8 9 10

$REPLY当前输入始终在哪里