123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/bin/bash
- set -e
- 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"
- yesno()
- {
- while true; do
- echo -n "$1"
- getkey
-
- if [ "$KEY" = "${YESNO:2:1}" ] || [ "$KEY" = "${YESNO:3:1}" ]; then
- REPLY=nop
- return
- fi
-
- if [ "$KEY" = "${YESNO:0:1}" ] || [ "$KEY" = "${YESNO:1:1}" ]; then
- REPLY=yep
- return
- fi
-
- if [ "$KEY" = "" ]; then
- REPLY=$2
- return
- fi
- done
- }
- export -f yesno
- $1 3>|$2
|