shell 关联索引下标是否对字符串有所限制?

#!/bin/sh
if [[ $# != 1 ]];
then
echo $0 basepath;
echo ;
fi

path=$1;

declare -a statearray;

(find $path -type f -print)| while read line;
do
#echo "----"
echo $line;
#echo "----"
ftype=`file -b "$line"`;
ftype=`echo "$ftype" | cut -f 1 -d " " `;
echo "$ftype";

let statearray["$ftype"]++;

done;

for type in "${!statearray[@]}";
do
echo $type : ${statearray["$type"]};
done


先说脚本的功能:

统计目录下各个文件类型数

出现问题

ISO-8859 文件类型不能统计

出现

statearray: bad array subscript错误


去看一些文档,但是并没有发现shell数组中对关联数组下标有严格限制,一般都说是字符串;

测试

发现

array["ISO-8859"]=1

bash: array["ISO-8859"]: bad array subscript

但是"ISO-8859" 也是字符串


所以还是有些疑惑!明天继续问大牛..



你可能感兴趣的:(shell 关联索引下标是否对字符串有所限制?)