• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Befehl für Skript mit Abfrage einer Eingabe

id0x64h

Newbie
Hallo,

ich habe eine Skript/Batchdatei geschrieben in der Befehle sequentiell abgearbeitet werden. Leider werden eben alle Befehle, soweit keine spezielle Applikation aufgerufen wird mit einem Befehl hintereinander ausgeführt, wenn ich in der Shell (X-terminal) bin.
Deshalb suche ich nach einem Kommando, wo auf eine Eingabe von der Tastatur gewartet wird um fortzusetzen, ähnlich wie unter DOS der Befehl "PAUSE".
Ich hoffe jemand kennt das gesuchte Kommando.
Wichtig ist, dass ich einfach nur eine Taste drücken will (keine spezielle) um dann mein Skript fortzusetzen.

id0x64h
 

gameboy

Hacker
Hallo id0x64h,

ich hätte folgenden Ansatz zu bieten:
Code:
#!/bin/bash
# --- hier zunächst der Code vor dem Warten (in diesem Beispiel df):
df
# --- nun kommt das Warten auf Tastendruck:
echo -n Bitte eine Taste drücken, um fortzufahren...
read -n 1 -s BLA
echo
# --- hier dann wieder beliebiger weiterer Code (in diesem Beispiel mount):
mount
 
OP
I

id0x64h

Newbie
Danke! Es funktioniert ganz prima. :D
So, aber ich hätte da noch eine Frage.
Also:
-n ist für die Anzahl der einzulesenden Zeichen.
-s ist dafür da, das das eingelesene Zeichen nicht wieder ausgegeben wird, aber wozu steht da BLA??
Habe mal ein wenig den Code verändert und anscheinend kann man es weglassen?!
Wäre nett, wenn du es mir noch verrätst, denn ich habe es nicht per help Kommando gefunden.

id0x64h
 
Schau mal mit "man bash"
oder konqueror info:bash
nach den Manuals.

Da findet sich alles. Das sind interne Befehle der Shell.

Haveaniceday
 

gameboy

Hacker
Hallo id0x64h,

id0x64h schrieb:
...aber wozu steht da BLA??
Habe mal ein wenig den Code verändert und anscheinend kann man es weglassen?!
$BLA ist im obigen Beispiel eine Variable und enthält die Taste, die gedrückt wurde. Die kann man dann z.B. ausgeben (oder irgendwie auswerten):

Code:
echo -n Bitte eine Taste drücken, um fortzufahren...
read -n 1 -s BLA
echo
echo "Folgende Taste wurde gedrückt: $BLA"
Daß man die Variable auch einfach weglassen kann, habe ich nicht gewußt. :)

Viele Grüße,
gameboy.
 
Oben