ファイル名を取得する関数

#f_askfname() - ファイル名を取得
#引数1 入力メッセージ
#引数2 0:入力必須 1:未入力有効
#引数3 初期ファイル名(省略可、引数2が0の場合のみ有効)
#戻り値 0:入力あり 1:入力なし _STR:入力文字列
#
ask_fname(){
    while :; do
        echo -n "$1"
        read _STR
        if [ ! "${_STR}" ]; then
            if [ $2 -eq 1 ]; then
                return 1
            elif [ $# -ge 3 ]; then
                _STR=$3
            fi
        fi
        if [ ! "${_STR}" ]; then
            continue
        elif [ -f "${_STR}" ]; then
            return 0
        else
            echo "\"${_STR}\" is not file."
        fi
    done
}
$ . f_askfname.sh 

$ ask_fname abc 0 1 
abc 1
"1" is not file.
abc f_askfname.sh