Di ksh pada dasarnya Anda dapat melakukan:
stty raw
REPLY=$(dd bs=1 count=1 2> /dev/null)
stty -raw
read -n1
berfungsi untuk bash
stty raw
mode mencegah ctrl-c bekerja dan dapat membuat Anda terjebak dalam loop input tanpa jalan keluar. Halaman manual juga mengatakan stty -raw
tidak dijamin untuk mengembalikan terminal Anda ke keadaan yang sama.
Jadi, bangun jawaban dtmilano menggunakan stty -icanon -echo
menghindari masalah-masalah itu.
#/bin/ksh
## /bin/{ksh,sh,zsh,...}
# read_char var
read_char() {
stty -icanon -echo
eval "$1=\$(dd bs=1 count=1 2>/dev/null)"
stty icanon echo
}
read_char char
echo "got $char"
Di bash, read
bisa melakukannya:
read -n1 ans