質問を表示しYesまたはNoで回答を受け取る関数

関数名 Get_YN
書式 Get_YN 質問文
目的 質問文を表示しYesまたはNoで回答を受け取る
戻り値 Yes:0 No:1 エラー9:

Get_YN () {
    . Error_Msg.sh && . Arg_Nums.sh ||\
    { echo "Get_YN: error: Function not found." 1>&2; exit 9; }
    Arg_Nums -eq 1 "$@" ||\
    { Error_Msg Get_YN "Number of Argments was wrong."; exit 9; }
    
    local _ANSWER=
    local _MESSAGE='Type "Yes" or "No"'
    local _RETRY=3
    
    echo -n "$1 (Yes/No): "
    while [ "$_RETRY" -ge 0 ]; do
        read _ANSWER
        case "$_ANSWER" in
            y|Y| [yY][eE][sS])    return 0 ;;
            n|N| [nN][oO])        return 1 ;;
            *)
                _RETRY=$(($_RETRY - 1))
                [ "$_RETRY" -ge 0 ] && echo -n "$_MESSAGE: "
                ;;
        esac
    done
    return 1
}