#!/bin/env fish function confirm -a message default set -l options (echo "[y/n]" | string replace "$default" (string upper "$default")) while true read -l value -P "$message $options " or exit 1 set value (string lower "$value") if [ -z "$value" ] set value $default end if contains "$value" 0 false n no false return end if contains "$value" 1 true y yes true return end echo "The specified value `$value` is invalid!" echo "Please try again" end end confirm $argv