getkey - Unix, Linux Command


getkey - wait until a key is pressed


getkey [OPTION]... [KEYS]


getkey waits until one of KEYS is pressed. If KEYS are not specified, any key is accepted. KEYS are matched case-insensitive.


getkey exits with status 0 if one of the expected keys is pressed. If invalid arguments are specified, getkey exits with status 255. If getkey is interrupted or the wait times out, getkey exits with other non-zero status.


-c, --wait SECONDS
  Wait only for SECONDS seconds. The default is 0, which means to wait without a time limit.

-i, --ignore-control-chars
  Don’t treat Ctrl+C and Ctrl+D specially. When this option is not specified, these characters interrupt getkey.

-m, --message MESSAGE
  Display MESSAGE while waiting. The message is used as a format string in sprintf(3), with a single argument, the number of seconds left. Typical usage is therefore "Press a key within %d seconds to ...". If MESSAGE contains other format string directives, the behavior is undefined and getkey may crash.

If there is no time limit specified, the number of seconds left is reported as 0.


1. Without any arguments

$ getkey

The command waits until any key pressed and comes out immediately once the key is pressed

2. Wait for key input for certain seconds
$ getkey -c 5

$ getkey -c 5

In the first example the command waits for 5 seconds for key press and comes out even if no key is pressed. In the second example the command comes out immediately after key is pressed.

3. Show dynamic message

$ getkey -c 5 -m "Press key within %d seconds"
Press key within 5 seconds

$ getkey -c 5 -m "Press key within %d seconds"
Press key within 4 seconds
$ getkey -c 5 -m "Press key within %d seconds"
Press key within 1 seconds

$ getkey -c 5 -m "Press key within %d seconds"
Press key within 0 seconds$

In the above example the command displays a message where the number of seconds keep decrementing till it reaches 0 or key is pressed.