################################################################ #### Korn Shell function to read one character from #### standard input (STDIN) without requiring a carriage #### return. This function would typically be used in a #### shell script to detect a key press. #### #### Load this file into your current environment as follows: #### #### . ./getch #### #### Thats "dot-space-dot-slash-getch-dot-sh" #### #### You will then be able to issue the command "getch" #### from your current environment to retrieve one character. #### #### SYNTAX: getch [-q] #### #### -q = quiet mode, no output #### #### AUTHOR: Dana French (dfrench@mtxia.com) #### #### See http://www.mtxia.com/js/Downloads/Scripts/Korn/Functions/visualSelect/index.shtml #### visualSelect menu system for a full implementation of "getch" #### capturing function keys, arrow keys, and other cursor movement keys. #### ################################################################ function getch { typeset TMP_GETCH typeset STAT_GETCH="0" stty raw TMP_GETCH=`dd bs=1 count=1 2> /dev/null` STAT_GETCH="${?}" stty -raw if [[ "_${1}" != "_-q" ]] then print -r -- "${TMP_GETCH}" fi return ${STAT_GETCH} }