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:
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.