Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : In der Shell abfragen ob ne Taste gedrückt wurde?



sticky bit
28-02-2003, 02:34
Ja, ich will in etwa in der Shell (BASh) folgendes erreichen:
Augabe: Drücken Sie eine Taste um fortzufahren.
User drückt irgendeine Taste && Skript geht weiter
Weiss nur ned wie man das machen kann das auf irgendeine Taste reagiert wird, ich hab jetzt nen Behelf mit read, muss man aber halt Enter drücken, ich hätt aber eben gerne auch alles andere als Enter...

phate
28-02-2003, 08:41
Hi sticky,

das ganze ist mit reinen bash - Bordmitteln nicht machbar. Zumindest nicht das ich wüsste. Unter Zuhilfenahme von dd lässt sich jedoch folgendes basteln.

stty raw -echo
dd of=/dev/null bs=1 count=1 2> /dev/null
stty echo -raw

Mittels stty raw wird die Pufferung Deines Terminals ausgeschaltet, sodass Eingaben auch ohne abschliessendes Newline, Zeichen für Zeichen an die Shell gehen. -echo ist nebensächlich, verhindert jedoch das die eingegebene Taste auf dem Bildschirm angezeigt wird. Jetzt benötigst Du nur noch ein Programm das Eingaben ohne abschliessendes Newline byteweise verarbeiten kann. dd ist Dein Freund.

gruss,

phate