陣列分配

列表分配

如果你熟悉 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'

按名稱分配(關聯陣列)

Version >= 4

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 始終是當前輸入