Skip to content

Ask until yes or no

Prompt until the user answers y/yes or n/no. Echoes 1 for yes and 0 for no.

18th August 2026

get_confirmation() {
  local valid_response=false
  local return_value=0

  while [[ "$valid_response" = false ]]; do
    read -r -p "${1:-Are you sure? [y/N]} " response
    case $response in
      [yY][eE][sS]|[yY])
        valid_response=true
        return_value=1
        ;;
      [nN][oO]|[nN])
        valid_response=true
        return_value=0
        ;;
    esac
  done
  echo $return_value
}

Caveats

Unlike confirm(), this loops until y or n and prints 1 or 0 instead of using the exit status.