Linux-Befehle

Bash-Auswahlbefehl

Bash-Auswahlbefehl
'Wählen'-Befehl ist ein sehr nützlicher Bash-Befehl für die Erstellung von Bash-Menüs. Verschiedene Arten von Menügenerierungsaufgaben, Erstellen einer menübasierten Direktorenliste, Erstellen eines Menüs aus Dateiinhalten usw. kann mit dem bash select-Befehl erfolgen. Wie Sie diese Aufgabentypen mit dem Befehl bash select implementieren können, wird in diesem Tutorial gezeigt.

Syntax:

wähle v in data_list
tun
Aussage1
Aussage2
Aussage3
getan

Hier wird der Menüpunkt aus der data_list erstellt, die ein Array oder eine andere Datenquelle sein kann. Jeder Menüpunkt wird aus der data_list abgerufen und in einer Variablen gespeichert, um das Menü zu erstellen. Der Befehl 'Auswählen' kann mit dem Befehl 'case' auch verwendet werden, um das Menü zu erstellen. Hier werden verschiedene Arten von Menüerstellungsaufgaben anhand von sehr einfachen Beispielen gezeigt.

Beispiel-1: Erstellen eines einfachen Menüs

Erstellen Sie eine Bash-Datei mit dem Namen select1.Sch mit dem folgenden Bash-Skript. Hier, 'wählen' Befehl ruft alle Daten aus der Liste ab und druckt die Daten als Menü. Das folgende Skript enthält die Markennamen von Mobiltelefonen und erstellt nach der Ausführung des Skripts ein Menü mit Mobiltelefonmarken und fordert den Benutzer auf, eine beliebige Marke auszuwählen. Es wird der Name der ausgewählten Marke gedruckt.  Der Benutzer muss drücken Strg+c aus dem Skript beenden.

#!/bin/bash
# Definieren Sie hier die Menüliste
Wählen Sie eine Marke in Samsung Sony iphone symphony Walton
tun
echo "Sie haben $marke gewählt"
getan

Ausgabe:

Führen Sie das Skript aus.

$ bash select1.Sch

Die folgende Ausgabe erscheint, nachdem das Skript ausgeführt und die Menüpunkte 1 und 4 ausgewählt wurden.

Beispiel-2: Select-Befehl mit einer case-Anweisung

Wie Sie ein Bash-Menü mit case-Anweisung erstellen können, wird in diesem Beispiel gezeigt. Erstellen Sie eine Bash-Datei mit dem Namen select2.Sch mit dem folgenden Bash-Skript. Nach dem Ausführen des Skripts wählt der Benutzer ein beliebiges Menüelement aus und die case-Anweisung stimmt den ausgewählten Wert mit dem case-Wert überein. Hier werden mehrere Fallwerte für den Abgleich mit dem ausgewählten Menüpunkt verwendet. Wenn keiner der Fallwerte mit dem ausgewählten Menüpunkt übereinstimmt, wird „Ungültiger Eintrag“ gedruckt.

#!/bin/bash
echo "Welches Betriebssystem magst du?"
# Betriebssystemnamen werden hier als Datenquelle verwendet
Wählen Sie das Betriebssystem in Ubuntu LinuxMint Windows8 Windows7 WindowsXP
tun
Fall $os in
# Hier werden zwei case-Werte zum Matching deklariert
"Ubuntu"|"LinuxMint")
echo "Ich benutze auch $os."
;;
# Drei Fallwerte werden hier zum Abgleichen deklariert
"Windows8" | "Windows10" | "WindowsXP")
echo "Warum probierst du nicht Linux aus??"
;;
# Abgleich mit ungültigen Daten
*)
echo "Ungültiger Eintrag."
Unterbrechung
;;
esac
getan

Ausgabe:
Führen Sie das Skript aus.

$ bash select2.Sch

Die unterschiedliche Ausgabe wird für unterschiedliche Auswahl angezeigt. Hier wird zum ersten Mal 1 ausgewählt, das ist Ubuntu. es stimmte mit dem ersten Fallwert überein Drucken Sie die Nachricht „Ich benutze auch Ubuntu“. 4 wird beim nächsten Mal ausgewählt und der Menüpunkt ist Windows 7 aber es gibt keinen Fallwert mit diesem Namen. Also, diesmal wurde es gedruckt "Ungültiger Eintrag" und aus dem Skript beenden.

Beispiel-3: Erstellen eines verschachtelten Bash-Menüs

Wenn ein Menü unter dem Menü des anderen erstellt wird, wird es als verschachteltes Menü bezeichnet. Das verschachtelte Menü kann in der Basis erstellt werden, indem zwei oder mehr select- und case-Anweisungen verwendet werden. Erstellen Sie eine Bash-Datei mit dem Namen auswählen3.Sch mit dem folgenden Bash-Skript. Hier werden zwei select- und case-Anweisungen verwendet, um das verschachtelte Menü zu implementieren. Das übergeordnete Menü enthält 4 Elemente und das Untermenü enthält 3 Elemente hier.

#!/bin/bash
während wahr
tun
# Hier deklarierte übergeordnete Menüelemente
Wählen Sie ein Element in der Maus Printer Monitor HDD Monitor
tun
# case-Anweisung zum Vergleich der ersten Menüpunkte
Fall $Artikel in
Maus)
echo "Welchen Monitortyp magst du?"
;;
Drucker)
# Untermenüpunkte hier deklariert hier
select sub_item in Samsung HP Dell
tun
# Fallaussage für Sonnenmenüpunkte
Fall $sub_item in
Samsung)
echo "Der Preis für einen Samsung-Drucker beträgt 100 US-Dollar"
Unterbrechung
;;
PS)
echo "Neuer HP 880-Drucker kostet 450 US-Dollar"
# zurück zum übergeordneten Menü
Unterbrechung
;;
Dell)
echo "Es ist momentan kein Dell-Drucker verfügbar"
# zurück zum übergeordneten Menü
Pause 2
;;
esac
getan
Unterbrechung
;;
Monitor)
echo "Kaufen Sie unseren neuen Samsung Monitor günstig"
break # zurück zum aktuellen (Haupt-)Menü
;;
Festplatte)
echo "Festplatten in guter Qualität sind im Lager verfügbar"
# Rückkehr vom Skript
Pause 2
esac
getan
getan

Ausgabe:

Führen Sie das Skript aus.

$ bash select3.Sch

Nach dem Ausführen des Skripts wird das übergeordnete Menü mit 4 Elementen angezeigt. Hier enthält nur der zweite Menüpunkt des übergeordneten Menüs Untermenü. Nach der Auswahl von 2 erschien das Untermenü und wenn der Benutzer 3 auswählte, zeigte er die entsprechende Meldung von Menüpunkt 3 an und kehrte zum übergeordneten Menü zurück.

Beispiel-4: Erstellen Sie ein Bash-Menü mit einem Array

Eine Array-Variable kann mehrere Daten speichern. Sie können also ein Array als Datenliste zum Erstellen eines Basismenüs verwenden. Wie Sie ein Array mit einer select-Anweisung verwenden können, um ein Menü zu erstellen, wird in diesem Beispiel gezeigt. Erstellen Sie eine Bash-Datei mit dem Namen select4.Sch mit dem folgenden Bash-Skript. Die Bash-Unterroutine wird in diesem Skript verwendet, um ein Menü aus dem Array zu erstellen. Es wird ein Array mit drei Elementen verwendet und menu_from_array () wird aufgerufen, um das Menü zu erstellen. Das Skript überprüft, ob die ausgewählte Menüelementnummer zwischen 1-3 liegt oder nicht. Wenn die Nummer nicht in diesem Bereich liegt, wird der Benutzer angewiesen, sie innerhalb dieses Bereichs auszuwählen, es wird das ausgewählte Menüelement mit anderem Text gedruckt print.

menu_from_array ()

Menüpunkt wählen; tun
# Überprüfen Sie die ausgewählte Menüpunktnummer
if [ 1 -le "$REPLY" ] && [ "$REPLY" -le $# ];
dann
echo "Das ausgewählte Betriebssystem ist $item"
Unterbrechung;
sonst
echo "Falsche Auswahl: Wählen Sie eine beliebige Zahl von 1-$#"
fi
getan

# Deklariere das Array
linux=('Ubuntu' 'Linux Mint' 'CentOS')
# Rufen Sie das Unterprogramm auf, um das Menü zu erstellen
menu_from_array "$linux[@]"

Ausgabe:

Führen Sie das Skript aus.

$ bash select4.Sch

Hier wird zuerst 2 ausgewählt, die innerhalb des Bereichs liegt und den Text gedruckt. 6 wird das zweite Mal außerhalb des zulässigen Bereichs ausgewählt und schlägt dem Benutzer vor, eine Zahl innerhalb des Bereichs auszuwählen.

Fazit

Die Aufgabe zum Erstellen von Bash-Menüs mithilfe einer select-Anweisung wird in diesem Tutorial so einfach wie möglich erklärt. Hoffe, der Programmierer, der daran interessiert ist, am Bash-Menü zu arbeiten und die Bash-Select-Anweisung zu lernen, wird von diesem Tutorial Hilfe erhalten. Vielen Dank.

Cursor springt oder bewegt sich zufällig während der Eingabe in Windows 10
Wenn Sie feststellen, dass Ihr Mauszeiger während der Eingabe auf einem Windows-Laptop oder -Computer automatisch und zufällig springt oder sich von s...
So kehren Sie die Scrollrichtung von Maus und Touchpads in Windows 10 um
Maus und Touchpads machen das Rechnen nicht nur einfach, sondern auch effizienter und weniger zeitaufwendig. Wir können uns ein Leben ohne diese Gerät...
So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...