我试图理解在 bash 中显式声明数组的意义。我正在做的课程指出您应该使用以下命令创建一个数组:
$ declare -a ARRAYNAME
我实际上从来不知道这个命令,因为我从来没有那样做过我的数组。例如,我写了下面的脚本,然后删除了文件的第一行。结果是一样的。这引出了一个问题,使用这个“$ declare -a”语句的实际意义是什么,因为我的课程声明显然必须使用这个 declare 语句(我证明是错误的)?
$ cat test6
declare -a car_models
car_models=( honda toyota bmw )
for i in "${!car_models[@]}"
do
echo " $i ${car_models[$i]}"
done
除了代码的清晰性和可读性之外,我没有理由知道你为什么必须声明它,因为声明它是对下一个阅读你代码的人的明确指示“嘿,这个变量将包含一个索引数组” .
另一方面,声明关联数组确实有用。考虑这个例子:
运行给出:
如您所见,与常规索引数组不同,如果您不将数组声明为关联数组,
declare -A
它就不起作用。