Reading n characters without pressing the return key
The bash command read
inputs text from the keyboard or standard input. We can use read
to acquire input from the user interactively, but read
is capable of more. Most input libraries in any programming language read the input from the keyboard and terminate the string when return is pressed. There are certain situations when return cannot be pressed and string termination is done based on a number of characters received (perhaps a single character). For example, in an interactive game, a ball is moved upward when + is pressed. Pressing + and then pressing return to acknowledge the + press is not efficient.
This recipe uses the read
command to accomplish this task without having to press return.
How to do it...
You can use various options of the read
command to obtain different results, as shown in the following steps:
- The following statement will read n characters from input into the
variable_name
variable:
read -n number_of_chars variable_name
Consider this example:
$ read -n 2 var $ echo $var
- Read a password in the non-echoed mode:
read -s var
- Display a message with
read
using the following command:
read -p "Enter input:" var
- Read the input after a timeout:
read -t timeout var
Consider the following example:
$ read -t 2 var # Read the string that is typed within 2 seconds into variable var.
- Use a delimiter character to end the input line:
read -d delim_char var
Consider this example:
$ read -d ":" var hello:#var is set to hello