Я думал, что dd
может быть в состоянии сделать это, поэтому я попробовал это и ничего не получил. Однако, Google нашел это для меня, и я адаптировал его здесь:
readOne () {
local oldstty
oldstty=$(stty -g)
stty -icanon -echo min 1 time 0
dd bs=1 count=1 2>/dev/null
stty "$oldstty"
}
Определите эту функцию один раз в начале вашего скрипта, затем вы можете использовать ее следующим образом:
char=$(readOne) # get the character
echo $char # print the character (or you can do something else with it)