#!/bin/bash # Adapted from bits and pieces of /usr/bin/bug, to provide the functions # that package says are permitted. # # /usr/bin/bug is: # (C) 1996-2000 Christoph Lameter <clameter@debian.org> # Nicolás Lichtmaier <nick@debian.org> # Modifications: # Copyright (C) 2000 Chris Lawrence <lawrencc@debian.org> # # You may freely redistribute, use and modify this software under the terms # of the GNU General Public License. set -e # Wait for a keypress and put it in $KEY getkey() { stty -icanon min 1 || true 2> /dev/null KEY=$(dd bs=1 count=1 2> /dev/null) stty icanon || true 2> /dev/null KEY="${KEY:0:1}" echo } export -f getkey export YESNO="yYnN" # Usage: yesno <prompt> "yep"|"nop" (<- default) # output: REPLY yesno() { while true; do echo -n "$1" getkey # if 'n' if [ "$KEY" = "${YESNO:2:1}" ] || [ "$KEY" = "${YESNO:3:1}" ]; then REPLY=nop return fi # if 'y' if [ "$KEY" = "${YESNO:0:1}" ] || [ "$KEY" = "${YESNO:1:1}" ]; then REPLY=yep return fi # if \n if [ "$KEY" = "" ]; then REPLY=$2 return fi done } export -f yesno #&>3 $1 3>|$2