批量重命名的问题

批量重命名的问题

小白我初学shell编程,自己练习写了如下的批量改名的脚本,但是对文件名中存在空格的文件无效,该如何解决呢?代码如下(关键代码为红色):
#!/bin/sh

##################################################
#rename one or more file names
##################################################

#display help information
displayHelp(){
        echo "FORMAT:"
        echo "    rename  [directory]  exetend  name"
        echo "FUNCTION:"
        echo "    rename many files one time"
        echo "PERAMETERS:"
        echo "    [directory]    : the directory of the files you want to rename "
        echo "    extend        : the extend name of the files you want to rename"
        echo "    name        : new file name  of the files you want to rename"
        exit 0;
}

#perameter missing or wrong
usage(){
        echo "usage:rename  [directory]  exetend  newname"
        echo "for more information:rename --help"
        exit 0
}

case "$#" in
#if number of perameters is 1
    1)
    if [ $1="--help" ]
    then
        displayHelp
    else
        usage
    fi
    ;;

#if number of perameters is 2
    2)
    directory='./'
    extend=$1
    newname=$2
    ;;

#if number of perameters is 3
    3)
    directory=$1
    extend=$2
    newname=$3
    ;;
    *)
    usage
    ;;
esac

count=1
for file in `ls *.$extend`
do
      mv "$file" "$newname$count.$extend"
      count=$(($count+1))
done
exit 0

#script ends


      
count=1
for file in *."$extend"
do
    if [ -f "$file" ] ; then
      mv "$file" "$newname$count.$extend"
      count=$(($count+1))
    fi
done

这样还有个问题
      mv "$file" "$newname$count.$extend"
当"$file"和"$newname$count.$extend"是当前目录下两个文件的话"$newname$count.$extend"就会被覆盖掉
相当于无形中删除了些文件,用户自己却不知道

改进建议:
1.删除当前目录下所有文件名后缀为~的文件
2.jpg后缀的文件添加~后缀
3.~后缀的文件再一一改成"$newname$count.$extend"      
谢谢前辈解惑!      
1. directory 这个变量赋值后好像没有用到?
2. 根据 $# 来分析参数看上去不够 cool 哈, 可以考虑使用 getopts       
大家都是互相帮助