Visit Our UNIX and Linux User Community


detect F5 is pressed


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting detect F5 is pressed
# 1  
Old 04-20-2009
detect F5 is pressed

Hello friends,

I want to write a shell script in bash shell .
Working for the script is to detect any key pressed and disply on screen as
"you have pressed: "

For example if user pressed F5 then a messaged has to be displayed as
"you have pressed F5.


Thank you.
# 2  
Old 04-20-2009
Code:
_key()
{
  local kp
  ESC=$'\e'
  _KEY=
  read -d '' -sn1 _KEY
  case $_KEY in
    "$ESC")
        while read -d '' -sn1 -t1 kp
        do
          _KEY=$_KEY$kp
          case $kp in
            [a-zA-NP-Z~]) break;;
          esac
        done
    ;;
  esac
  printf -v "${1:-_KEY}" "%s" "$_KEY"
}

_key x

case $x in
  $'\e[15~') echo You have pressed F5 ;;
esac

This User Gave Thanks to cfajohnson For This Post:
# 3  
Old 04-21-2009
Thanks cfajohnson,

it worked well.
But F5 was an example .
what if we press any alphabet any number and so one.

hope you have understood what is my requirement.

anyways thank you once again for replying me back.
# 4  
Old 04-21-2009
Code:
case $x in
  $'\e[11~' | $'\e[OP') key=F1 ;;
  $'\e[12~' | $'\e[OQ') key=F2 ;;
  $'\e[13~' | $'\e[OR') key=F3 ;;
  $'\e[14~' | $'\e[OS') key=F4 ;;
  $'\e[15~') key=F5 ;;
  $'\e[16~') key=F6 ;;
  $'\e[17~') key=F7 ;;
  $'\e[18~') key=F8 ;;
  $'\e[19~') key=F9 ;;
  $'\e[20~') key=F10 ;;
  $'\e[21~') key=F11 ;;
  $'\e[22~') key=F12 ;;
  $'\e[A' ) key=UP ;;
  $'\e[B' ) key=DOWN ;;
  $'\e[C' ) key=RIGHT ;;
  $'\e[D' ) key=LEFT ;;
  ?) key=$x ;;
  *) key=??? ;;
esac

echo "You have pressed $key"

# 5  
Old 04-21-2009
thanks it worked perfectly fine.

Previous Thread | Next Thread
Test Your Knowledge in Computers #725
Difficulty: Medium
Barbara Liskov developed the Liskov substitution principle, which guarantees semantic interoperability of data types in a hierarchy.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Detect OS

whats the equivalent of detect OS in perl with an if then ? platform='uname' if ]; then alias ls='ls --color=auto' elif ]; then alias ls='ls -G' fi In perl I see perl -Mstrict -MEnglish -E 'say $OSNAME' or print "$^O" Please use CODE tags as required by... (1 Reply)
Discussion started by: nixguynj
1 Replies

2. Ubuntu

Pressed/Net Install 12.04 LTS

So I mounted a 12.04 LTS ISO, exported it via apache. Goy my netinstall files in place. Pointed Foreman to my install media the Preseed config files run. Life is good. Server comes up, I run apt-get update and blam: : Failed to fetch... (0 Replies)
Discussion started by: general_lee
0 Replies

3. Shell Programming and Scripting

Get Rid ^C when pressed Ctrl-C

How do i get rid of the ^C when i pressed Ctrl-C? (7 Replies)
Discussion started by: vietrice
7 Replies

4. Shell Programming and Scripting

how can i know the pressed key is arrowup?

Hi all, I need to know how to test a pressed key is arrowup or arrowdown and etc.. I found that the "echo" won't print anything if i enter the arrowup in the below code: read echo "you pressed $REPLY" Then i find a way to achieve my goal. 1 #! /bin/bash 2 3 ARROWUP='\;then... (4 Replies)
Discussion started by: homeboy
4 Replies

5. Shell Programming and Scripting

Disable Enter key to be pressed

Hi Experts, I have a script in which I want to disable the "Enter" key press. Actually my script executes some process in background. So, till that background process is running, I don't want "Enter" key to be pressed by user. Is this can be achieved using trap command? (6 Replies)
Discussion started by: R0H0N
6 Replies

6. Shell Programming and Scripting

Wait given time unless key pressed

Hello everyone. I'm trying to create a script that waits a given amount of time unless a given key is pressed. I found a very useful thread here https://www.unix.com/shell-programming-scripting/59605-trap-key-press-script.html however, I cannot figure out a way of avoiding the keypress if the... (2 Replies)
Discussion started by: cue
2 Replies

7. Shell Programming and Scripting

how can i do some action when 'ctrl+d' is pressed

hi Gurus, please why is this happening: when i run this: #!/bin/bash declare -a name declare -a ph declare -a eid r=0; c=1; i=1; n=; echo " name phone email_id" while : do #if ; then #break; #else echo -n "field $i:"; read name ph eid; let "i++"; ... (5 Replies)
Discussion started by: tprayush
5 Replies

8. UNIX for Dummies Questions & Answers

screen blinks when escape key is pressed

hi folks, i am using sun solaris, when i press escape key in putty/netterm screen will blink for a second, plese let me know where this setting is done by my admin, what i feel is my admin must have set some control key for this so that screen will refresh each time i press escape key. please let... (1 Reply)
Discussion started by: sudheer157
1 Replies

9. Shell Programming and Scripting

How to identify whether the return key is pressed ??

I want my program(ksh) to execute further only if the return key is pressed. Please help. i have already tried "\n", "\r", "^M" . Thanks in advance (2 Replies)
Discussion started by: AiK
2 Replies

10. Programming

know what key is pressed

hi im making a program, and i would like to know how can i know what key was pressed. i'm using Sun5.7 and C. is there a keypress/keypressed function in C? how can i know recognize the keys (enter, tab, shift, etc.)? can i recognize two keys ? (shift+A, ctrl+C, etc) any idea.. thanks (4 Replies)
Discussion started by: DebianJ
4 Replies

Featured Tech Videos