ゴミ箱からファイルを取り出す

#!/bin/sh
#pickup_trash.sh

. f_chknum.sh
. f_readline.sh
. f_askdir.sh

TRASHDIR=~/.trash_folder

if [ $(ls ${TRASHDIR} | wc -l) -eq 0 ]; then
    echo "Trash is Empty."
    exit 0
fi

TRASHLIST=trash_list
TRASHLIST2=trash_list2

while : ; do
    ls ${TRASHDIR} | sed 's/...........$//' > ${TRASHLIST}

    ls ${TRASHDIR} > ${TRASHLIST2}
    MAXCNT=$(cat ${TRASHLIST} | wc -l)
    if [ $MAXCNT -eq 0 ]; then
        echo "Trash is Empty."
        break
    else
        MAXCNT=$(expr ${MAXCNT} + 1)
        echo "*** File List ***"
        cat -n ${TRASHLIST}
        if [ ${MAXCNT} -lt 10 ]; then
            echo -n " "
        fi
        echo "    ${MAXCNT}  -> Quit."

        while : ; do
            echo -n "Select Number : "
            read SELNUM
            check_num $SELNUM
            if [ $? -eq 0 ]; then
                if [ ${SELNUM} -eq ${MAXCNT} ]; then
                    echo "*** End."
                    break 2
                elif [ ${SELNUM} -eq 1 -a ${SELNUM} -lt ${MAXCNT} ]; then
                    ask_directory 2
                    read_line ${TRASHLIST2} ${SELNUM}
                    FNAME=$(echo ${_BUF} | cut -d' ' -f 1)
                    mv "${TRASHDIR}/${_BUF}" "${_DIRNAME}/${FNAME}"
                    if [ $? -eq 0 ]; then
                        echo "Move ${FNAME} To ${_DIRNAME}"
                    else
                        break 2
                    fi
                    break
                fi
            fi
        done
    fi
done

rm ${TRASHLIST}
rm ${TRASHLIST2}

unset SELNUM TRASHDIR TRASHLIST MAXCNT _BUF _DIRNAME FNAME
$ ./pickup_trash.sh 
*** File List ***
     1  1.html
     2  -> Quit.
Select Number : 1
Input Directory[/home/anmino] : 
Move 1.html_0911260111 To /home/anmino
Trash is Empty