Juchi Geschrieben 15. Februar 2010 Geschrieben 15. Februar 2010 Hallo zusammen, ich versuche mich im Moment daran eine etwas angenehmere Menüumgebung für die Konsole zu schrieben. Dazu gehört auch, dass das Menü ein Zeichen einliest und anhand dieses Zeichens entsprechend reagiert. D.h. durch das Drücken der Tab Taste springt man zum nächsten Menüpunkt, durch das Drücken der Entertaste öffnet man einen Menüpunkt und so weiter. Leider funktioniert das Einlesen eines Tabs im Moment überhaupt nicht. Zuerst habe ich eine Variable festgelegt, welche zum späteren Vergleichen ein Tab enthält: tab=`echo -e "\t"` Dann kommt die auswertende Funktion: f_modus() 24 { 25 read -s -n1 "temp" 26 27 #tput cup 20 0 28 #echo "$tab" 1 29 #echo "$temp" 1 30 31 32 case "$temp" in 33 34 "$tab") 35 #hier soll dann entsprechend etwas getan werden 36 ;; 37 esac Ist also so gedacht: Ein Zeichen einlesen, mit dem Tab vergleichen, und falls es ein Tab ist in diesen Punkt hineinhüpfen. Das passiert aber nie. Zum Testen habe ich jetzt die drei, hier auskommentierten, Zeilen 27-29 eingebaut um visuell zu sehen was in beiden Variablen drinsteht. Das liefert folgendes Ergebnis: 1 1 Das heißt für mich, dass die Tab-Variable stimmt, die Eingabe des Tabs aber nicht als Tab gelesen wird. Wo liegt mein Fehler? Kann mir jemand einen Denkanstoß geben? Gruß Zitieren
Juchi Geschrieben 18. Februar 2010 Autor Geschrieben 18. Februar 2010 Lösung gefunden: Internal Field Separator ändern 38 IFS_sich=$IFS 39 IFS="" 40 41 read -s -n1 'input' 43 IFS="$IFS_sich" Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.