Bash
Unix Shell:數組分配不起作用
我正在通過以下程式碼學習數組
source_array_list[0]="a" source_array_list[1]="a" source_array_list[2]="a" source_array_list[3]="a" source_array_list[4]="a" source_array_list[5]="a" source_array_list[6]="a" source_array_list[7]="a" a=0 while [$a -le 6] do echo "just before loop" target_array[a]=source_array_list[$a] echo "${source_array_list[$a]}" a=`expr $a + 1` done
現在這不起作用並給出錯誤
[0: not found.
‘[’ 之後需要一個空格,因為 ‘[’ 是一個命令。
您還需要 ${} 圍繞數組變數引用,因此您應該:
source_array_list[0]="a" source_array_list[1]="b" source_array_list[2]="c" source_array_list[3]="d" source_array_list[4]="e" source_array_list[5]="f" source_array_list[6]="g" source_array_list[7]="h" while [ $a -le 6 ] do target_array[a]=${source_array_list[$a]} echo "${source_array_list[$a]}" a=`expr $a + 1` done
您還可以通過執行以下操作來簡化這一點,
source_array_list=('a' 'b' 'c' 'd' 'e' 'f' 'g' 'h') target_array=() for element in "${source_array_list[@]}" do target_array+=(${element}) echo "${element}" done echo ${target_array[@]}