hold=' '
printf "Press 'SPACE' to continue or 'CTRL+C' to exit : "
tty_state=$(stty -g)
stty -icanon
until [ -z "${hold#$in}" ] ; do
in=$(dd bs=1 count=1 </dev/tty 2>/dev/null)
done
stty "$tty_state"
Esto ahora imprime un mensaje sin una nueva línea final, se maneja de CTRL+C
manera confiable, invoca stty
solo con la frecuencia necesaria y restaura el tty de control exactamente al estado en el que se stty
encontró. Busque man stty
información sobre cómo controlar explícitamente los ecos, los caracteres de control y todo.
También puedes hacer esto:
printf "Press any key to continue or 'CTRL+C' to exit : "
(tty_state=$(stty -g)
stty -icanon
LC_ALL=C dd bs=1 count=1 >/dev/null 2>&1
stty "$tty_state"
) </dev/tty
Podrías hacerlo ENTER
, sin [
pruebas ]
y sin stty
gusto:
sed -n q </dev/tty