Bash warten auf TastePress

Bash warten auf TastePress
Der Befehl 'Read' wird verwendet, um die Benutzereingabe in ein Bash -Skript zu nehmen. Wir können Eingaben im Bash -Skript einnehmen, indem wir verschiedene Arten von Optionen mit dem Befehl read verwenden. Manchmal müssen wir das Skript so schreiben, dass das Skript ausgeführt wird, bis eine bestimmte Taste gedrückt wird oder das bestimmte Skript basierend auf der jeweiligen Taste ausgeführt wird, oder das Programm wartet auf die bestimmte Zeit, bis eine Taste gedrückt wird. Wie Sie ein Bash -Skript schreiben können, um auf einen bestimmten Schlüssel oder einen Schlüssel zu einigen Aufgaben zu warten, wird in diesem Tutorial unter Verwendung verschiedener Beispiele angezeigt.

Beispiel 1:

Erstellen Sie eine Bash -Datei mit dem folgenden Skript. Wenn Sie das Skript ausführen, wird es fortgesetzt, bis der Benutzer eine Taste drückt. Das Skript wartet in alle 3 Sekunden auf die Eingabe des Benutzers. Wenn der Benutzer keine Taste drückt, wird die Nachricht gedrucktWarten auf den Schlüsseldruck“.

#!/Bin/Bash
echo "drücken Sie eine beliebige Taste, um fortzufahren."
während [wahr]; Tun
Lesen Sie -t 3 -n 1
Wenn [$? = 0]; Dann
Ausfahrt ;
anders
Echo "Warten auf den Schlüsseldruck"
fi
Erledigt

Führen Sie das Skript aus.

$ bash key1.Sch

Ausgang:

Beispiel#2:

Erstellen Sie eine Bash -Datei mit dem folgenden Skript. In diesem Beispiel wird eine unendliche während der Schleife verwendet, die endet, wenn der Benutzer "Q" drückt. Wenn der Benutzer eine Taste ohne 'Q' drückt, wird der Wert der Zählervariablen um 1 erhöht und drucken Sie den Wert aus.

#!/Bin/Bash
echo "drücken Sie 'q', um zu beenden"
count = 0
während : ; Tun
Lesen Sie -n 1 k <&1
wenn [[$ k = q]]; Dann
printf "\ nquitting aus dem Programm \ n"
brechen
anders
((count = $ count+1))
printf "\ näherte für $ count Times \ n"
echo "drücken Sie 'q', um zu beenden"
fi
Erledigt

Führen Sie das Skript aus.

$ bash key2.Sch

Ausgang:

Beispiel#3:

Erstellen Sie eine Bash -Datei mit dem folgenden Skript, das auf der Grundlage der vom Benutzer gedrückten Taste verschiedene Arten von Aufgaben erledigt. Wenn der Benutzer "1" drückt, fügt er zwei Befehlszeilenargumente hinzu und druckt drucken. Wenn der Benutzer "2" drückt, subtrahiert er zwei Befehlszeilenargumente und druckt. Das Skript wird kontinuierlich ausgeführt, bis der Benutzer "3" drückt.

#!/Bin/Bash
v1 = $ 1
v2 = $ 2
während :
Tun
Echo "1. Zusatz"
Echo "2. Subtraktion"
Echo "3. Aufhören"
echo -n "Typ 1 oder 2 oder 3:"
Lesen Sie -n 1 -t 15 a
printf "\ n"
Fall $ a in
1*) echo "$ v1 + $ v2 = $ (($ v1 + $ v2))" ;;
2*) echo "$ v1 - $ v2 = $ (($ v1- $ v2))" ;;
3*) Beenden Sie 0 ;;
*) Echo "Versuchen Sie es erneut.";;;
ESAC
Erledigt

Führen Sie das Skript mit zwei numerischen Argumentwerten aus.

$ bash key3.Sh 35 15

Ausgang:

Beispiel Nr. 4:

Erstellen Sie eine Bash -Datei mit dem folgenden Skript. Das Skript endet, wenn der Benutzer die ESC -Taste drückt. In diesem Skript werden die vom Benutzer gedrückten Schlüssel gedruckt, bis die ESC -Taste gedrückt wird.

#!/Bin/Bash
userInput = ""
Echo "Drücken Sie die ESC -Taste, um aufzuhören"
# Lesen Sie einen einzelnen Charakter
Während des Lesens -r -n1 -Schlüssels
Tun
# wenn input == ESC -Schlüssel
wenn [[$ key == $ '\ e']];
Dann
brechen;
fi
# Fügen Sie die Taste der Variablen hinzu, die vom Benutzer gedrückt wird.
UserInput+= $ Key
Erledigt
printf "\ nyou haben tippt: $ userInput \ n"

Führen Sie das Skript aus.

$ bash key4.Sch

Ausgang:

Beispiel Nr. 5:

Erstellen Sie eine Bash -Datei mit dem folgenden Code, der auf die Eingabetaste wartet, um das Skript zu beenden. Das Skript nimmt einen Servernamen als Eingabe an und versucht, den Server in alle 2 Sekunden zu pingen. Wenn Ping -Befehl die Antwort vom Server erhält, wird das Skript beendet, indem die Ausgabe angezeigt wird. Andernfalls wartet er auf die Antwort des Benutzers oder ggst die Taste ein, indem die Nachricht gedruckt wird, "Versuch, eine Verbindung mit ...".

#!/Bin/Bash
Echo "Geben Sie die Serveradresse ein, die Sie pingen möchten"
Server lesen
während ! Ping -c 1 -n -W 2 $ Server
Tun
Echo "versucht, eine Verbindung mit $ server herzustellen"
Echo "Drücken Sie [Eingeben], um zu beenden"
Lesen Sie -s -n 1 -t 1 Schlüssel
wenn [[$ key == $ '\ x0a']]; # wenn input == Eingeben Sie die Schlüssel
Dann
beenden 0
fi
Erledigt
printf "%s \ n" "$ server wird ausgeführt" "

Führen Sie das Skript aus.

$ bash key5.Sch

Ausgang:

Abschluss:

Dieses Tutorial zeigt, wie Sie das Bash -Skript auf verschiedene Weise schreiben können, die darauf warten, dass die Eingabe des Benutzers eine bestimmte Aufgabe erledigt oder das Skript beendet. Ich hoffe, nach dem Üben der obigen Beispiele können Sie das Skript so schreiben, dass Sie auf einen Tastendruck warten und die jeweilige Aufgabe basierend auf der vom Benutzer gedrückten Taste erledigen können.