как разрешить bash считывать «нажатую клавишу» во время нажатия, а не после нажатия ENTER

как разрешить bash считывать «нажатую клавишу» во время нажатия, а не после нажатия ENTER

Согласно моим ограниченным знаниям, я не уверен, что написал правильный заголовок для этого вопроса.
В любом случае, я хочу знать, как bash определяет нажатую клавишу и делает что-то в соответствии со структурой скрипта.
До сих пор я не знал, что read somthing ; do_somthing_to $something
мне нужен скрипт, похожий на следующий:

#!/bin/bash
while read a
  do
    echo "$a pressed"
  done

но я хотел, чтобы он выдавал мне результаты во время печати (он не должен был ждать, пока я нажму Enter)!

и спасибо!

решение1

Вы можете указать количество символов для чтения с помощью -n. Итак, в вашем случае:

#! /bin/bash
read -n1 a
echo "$a pressed"

Возможно, вам придется включить этот параметр -s, чтобы избежать печати клавиши при нажатии.

Связанный контент