Press any key to continue

Software besorgen und anwenden
Post Reply
Message
Author
???

Press any key to continue

#1 Post by ??? »

Hi

Weiß jemand wie ich in einem shell script "press any key to continue" einbau?

"read" funktioniert ja, nur muss man da enter drücken...

cu

Jochen

Re: Press any key to continue

#2 Post by Jochen »

Da bin ich doch glatt noch ins Knobeln gekommen... Aber es geht natürlich, man muss nur wissen wie. <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#!/bin/bash

function press_any_key {
local OLDSTTY CHAR

OLDSTTY=$(stty -g)
stty cbreak -echo
CHAR=$(dd bs=1 count=1 2>/dev/null)
stty "$OLDSTTY"
[ "$1" == "-e" ] && echo "$CHAR"
return 0
}

echo -n "Bitte eine Taste hauen: "
TASTE=$(press_any_key -e)
echo -e "Taste wurde gedrückt.\<!--no-->nDie Taste war \<!--no-->"$TASTE\<!--no-->"."
exit 0
</font><hr></pre></blockquote>
Man definiert sich hier eine Funktion mit Namen "press_any_key"; die erhält zwei lokale Variablen, damit man sich sein Hauptprogramm nicht durcheinanderbringt bei Namenkonflikten. Mittels "stty -g" speichern wir uns die Terminaleinstellungen, wie sie gerade sind und versetzen das Terminal danach in den CBREAK-Mode, in dem keine Zeilenbufferung mehr stattfindet. Mittels "-echo" wird das Auisgeben der getippten Taste auf dem Terminal unterbunden. "dd" liest exakt ein Zeichen, welches in CHAR verwahrt wird. Dann wird das Terminal restauriert und geschaut, ob die Funktion beim Aufruf ein "-e" (für echo) mitbekommen hat. Falls ja, wird das Zeichen ausgegeben, ansonsten stillschweigend zurückgekehrt. Der Rest ist nur ein Beispiel für eine Verwendung der Funktion.

Jochen

heinbloed

Re: Press any key to continue

#3 Post by heinbloed »

...nun fehlt nur noch der blaue Hintergrund *ggg*
Winowsemulation mal an der Realität *ggg* <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
Viel Erfolg ....
Gruss

???

Re: Press any key to continue

#4 Post by ??? »

Hi

Jochen: Vielen Dank!
Das war genau das was ich gesucht habe & ein bischen mehr: Dankeschön!

MfG

Jochen

Re: Press any key to continue

#5 Post by Jochen »

@heinbloed:
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
tput setf 7 ; tput setb 1
</font><hr></pre></blockquote>
Im xterm/Konsole/rxvt/wasauchimmer eintippen... <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

Jochen

Post Reply