Você pode usar a opção -n chars
: de help read
-n nchars return after reading NCHARS characters rather than waiting
for a newline, but honor a delimiter if fewer than NCHARS
characters are read before the delimiter
Alternativamente, em versões mais recentes do bash, você poderia substituir toda a construção por uma instrução select
, que implementa a lista de seleção para você
$ select opzione in "Encrypt" "Decrypt" "Quit"; do echo "You chose $REPLY"; done
1) Encrypt
2) Decrypt
3) Quit
#? 1
You chose 1
#? ^C