#!/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" 也是字符串
所以还是有些疑惑!明天继续问大牛..