Funktionstasten in ksh-Shell abfragen/abfangen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von jürgen, 22.05.2007.

  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!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
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...