# 定义检查文件日志输出 参数1:日志内容
print_log()
{
echo -e `date +%F\ %T` : ${0##*/} : "${1}" #
}
get_all_file_from_dir(){
local father_dir_name=$1
for child_file in `ls ${father_dir_name}`
do
local child_file_path=${father_dir_name}/${child_file}
if [ -d ${child_file_path} ] ;then
#print_log "子目录是文件夹继续遍历子文件:[${1}/${child_file}]"
get_all_file_from_dir ${child_file_path}
else
# 判断文件后缀
#print_log "文件后缀:[${child_file_path##*.}]" ## 就是用.分割取最后一个
#print_log "子目录是文件,可进行文件处理了:[${child_file_path}]"
if ! [[ ${check_file_suffix} =~ ${child_file_path##*.} ]] ;then ## [[]] 不会发生单词分割,其他基本通用
print_log "[INFO:]无需检查此文件,跳出本次循环,文件名[${child_file_path}]"
continue
fi
if [ ` file -b ${child_file_path} | grep -iE "UTF-8|ASCII" | wc -l` = "1" ] ;then
print_log "[INFO:]文件是UTF-8或者ASCII格式。文件名[${child_file_path}]"
else
print_log "[WARRING:]文件不是UTF-8或者ASCII格式。文件名[${child_file_path}]"
fi
if [ ` file -b ${child_file_path} | grep "CRLF" | wc -l` = "1" ] ;then
print_log "[ERROR:]文件换行符号为Win系统,请马上修改!文件名[${child_file_path}]"
fi
fi
done
}
check_file_suffix='sh'
get_all_file_from_dir $path_name
网友评论