当我检查数组的长度总是1时,即使我在命令行中给出了更多的参数
for i in $*
do
echo $i
conect[$i]=0
done
echo ${#conect}
最佳答案
试试这个:
#!/bin/bash
declare -A conect
for i in "$@"
do
echo $i
conect[$i]=0
done
echo ${#conect[@]}
说明:
关联数组(即索引可以是非数值的)必须用
declare -A
声明。如果保证索引是数字的,则不需要这样做。${#foo}
是字符串值变量的长度(字符数);${#conect[@]}
是数组的长度(元素数)。正如其他人指出的,
"$@"
优于$*
,特别是当(引用的)参数可能包含空格时。