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.