Funktionstasten in ksh-Shell abfragen/abfangen

Diskutiere Funktionstasten in ksh-Shell abfragen/abfangen im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hallo, ich habe ein korn shell Skript geschrieben, das eine einstellige Tastatureingabe ohne anschließende Betätigung der Return-Taste...

  1. #1 jürgen, 22.05.2007
    jürgen

    jürgen Grünschnabel

    Dabei seit:
    22.05.2007
    Beiträge:
    8
    Zustimmungen:
    0
    Hallo,

    ich habe ein korn shell Skript geschrieben, das eine einstellige Tastatureingabe ohne anschließende Betätigung der Return-Taste ermöglicht.

    Die "normalen" darstellbaren Zeichen a-z, A-Z, 0-9 und diverse Sonderzeichen funktionieren damit zufriedenstellend.

    Leider machen mir aber die Funktionstasten (z. B. F1 - F12, Entf, usw.) Probleme:
    anstatt das erwartete eine Zeichen zu liefern, kommt die aus mehreren Zeichen bestehende Escape-Sequenz der gedrückten Funktionstaste und diese bekomme ich weder per stdout-Ausgabeumlenkung noch durch Zuweisung in eine Variable "in den Griff".


    Hier das Skript
    Code:
    #!/bin/ksh
    
    tastatureingabe()
    {
       stty  raw -echo
       dd count=1 bs=1 2>/dev/null
       stty -raw  echo
    } # ende der Funktion tastatureingabe()
    
    # Tastatureingabe abfragen und auswerten
    CHAR=x
    while [[ $CHAR != Q ]]
    do
       CHAR=`tastatureingabe | awk '{print toupper($1)}'`              # z.B. A
       typeset -i CHAR_DEZ
       CHAR_DEZ=`echo "$CHAR" | od -t dC | head -1 | awk '{print $2}'` # z.B. 65
       echo "Taste $CHAR (dezimal $CHAR_DEZ) gedrueckt"
    done
    
    , hier ein paar funktionierende Eingabebeispiele (Plattform Linux 2.4.21-278-smp), bei denen ich immer nur das hinter dem Wort "Taste " angezeigte Zeichen eingab
    Code:
    Taste A (dezimal 65) gedrueckt
    Taste B (dezimal 66) gedrueckt
    Taste Y (dezimal 89) gedrueckt
    Taste Z (dezimal 90) gedrueckt
    Taste 0 (dezimal 48) gedrueckt
    Taste 1 (dezimal 49) gedrueckt
    Taste 8 (dezimal 56) gedrueckt
    Taste 9 (dezimal 57) gedrueckt
    Taste ° (dezimal -80) gedrueckt
    Taste ! (dezimal 33) gedrueckt
    Taste " (dezimal 34) gedrueckt
    Taste § (dezimal -89) gedrueckt
    Taste $ (dezimal 36) gedrueckt
    Taste % (dezimal 37) gedrueckt
    Taste & (dezimal 38) gedrueckt
    Taste / (dezimal 47) gedrueckt
    Taste ( (dezimal 40) gedrueckt
    Taste ) (dezimal 41) gedrueckt
    Taste = (dezimal 61) gedrueckt
    Taste ? (dezimal 63) gedrueckt
    Taste ` (dezimal 96) gedrueckt
    Taste ² (dezimal -78) gedrueckt
    Taste ³ (dezimal -77) gedrueckt
    Taste { (dezimal 123) gedrueckt
    Taste [ (dezimal 91) gedrueckt
    Taste ] (dezimal 93) gedrueckt
    Taste } (dezimal 125) gedrueckt
    Taste \ (dezimal 92) gedrueckt
    Taste ß (dezimal -33) gedrueckt
    Taste < (dezimal 60) gedrueckt
    Taste > (dezimal 62) gedrueckt
    Taste | (dezimal 124) gedrueckt
    Taste , (dezimal 44) gedrueckt
    Taste ; (dezimal 59) gedrueckt
    Taste . (dezimal 46) gedrueckt
    Taste : (dezimal 58) gedrueckt
    Taste - (dezimal 45) gedrueckt
    Taste _ (dezimal 95) gedrueckt
    Taste # (dezimal 35) gedrueckt
    Taste ' (dezimal 39) gedrueckt
    Taste + (dezimal 43) gedrueckt
    Taste * (dezimal 42) gedrueckt
    Taste ~ (dezimal 126) gedrueckt
    Taste Q (dezimal 81) gedrueckt
    
    und hier mein Problem am Beispiel der einmalig gedrückten F5-Taste (und natürlich das anschließende Q zum Verlassen der while-Schleife)
    Code:
    Taste ezimal 27) gedrueckt
    Taste [ (dezimal 91) gedrueckt
    Taste 1 (dezimal 49) gedrueckt
    Taste 5 (dezimal 53) gedrueckt
    Taste ~ (dezimal 126) gedrueckt
    Taste Q (dezimal 81) gedrueckt
    

    Ich hoffe, dass ich mein Problem klar genug formuliert habe und dass jemand eine Idee/Lösung dafür hat.
    Schon im Voraus danke für Eure Hilfe!
     
Thema: Funktionstasten in ksh-Shell abfragen/abfangen
Besucher kamen mit folgenden Suchen
  1. funktionstasten abfragen perl

Die Seite wird geladen...

Funktionstasten in ksh-Shell abfragen/abfangen - Ähnliche Themen

  1. ASUS Z53S - Funktionstasten

    ASUS Z53S - Funktionstasten: ASUS Z53S - Opensuse 11 - Desktopeffekt Hallo Zusammen, bin neu hier und möchte erst mal einen schönen gruß an alle absetzen. Versuche schon...
  2. Powermanagement / Funktionstasten

    Powermanagement / Funktionstasten: Hallo, kann mir jemand ein Tipp geben, wie ich unter meinem neuen X61s ein bisschen was an der Akkuleistung drehen kann? Angeblich soll er ja...
  3. Funktionstasten Toshiba-Notebook?

    Funktionstasten Toshiba-Notebook?: Hallo. Ich nenne seit einer Weile ein Notebook von Toshiba mein Eigen (Satellite A100-01Q) und suche ein Linux (oder auch ein BSD?), welches...
  4. Logitech Internet Keyboard unter SUSE 9.1 Sonderfunktionstasten ?

    Logitech Internet Keyboard unter SUSE 9.1 Sonderfunktionstasten ?: Hallo unter MDK 10 Official habe ich einfach unter KDE3.2 obigen Keyboardnamen gewählt und schon funzten selbst die Sondertasten für Volume und...
  5. Sonderfunktionstasten auch unter Linux ?

    Sonderfunktionstasten auch unter Linux ?: Hab mir grad die Funkmaus und Tastatur mit Sondertasten von Tevion bei Aldi gekauft Modell MD9602, jetzt frag ich mich ob es irgendein Projekt...