YesかNoかの回答を得る

#ファイル名 f_yesno2.sh
#目的 YesかNoかの回答を得る(初期設定あり)
#引数1 表示メッセージ
#引数2 初期設定 1:Yes 2:No
#戻り値 0:Yes 1:No

yes_no2(){
    while :; do
        case $2 in
            1) echo -n "$1 (Yes/no) : " ;;
            2) echo -n "$1 (yes/No) : " ;;
            *) echo -n "$1 (yes/no) : " ;;
        esac

        read _ANSWER
        if [ ! "$_ANSWER" ]; then
            case $2 in
                1) _ANSWER=Y ;;
                2) _ANSWER=N ;;
            esac
        fi

        case "${_ANSWER}" in
            Y|y|[Yy][Ee][Ss]) return 0 ;;
            N|n|[Nn][Oo])     return 1 ;;
        esac
    done
}
$ . f_yesno2.sh

$ yes_no2 abc 2; echo $?
abc (yes/No) : y
0

$ yes_no2 abc 2; echo $?
abc (yes/No) : n
1