我正在通过以下代码学习数组
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.
答案1
'[' 之后需要一个空格,因为 '[' 是一个命令。
您还需要 ${} 围绕数组变量引用,因此您应该:
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[@]}