Bash -Select -Befehl

Bash -Select -Befehl
Wählen Der Befehl wird in Skripten zur Menüerstellung verwendet. Verschiedene Arten von Aufgaben der Menügenerierung können mit dem implementiert werden wählen Befehl wie: Erstellen von Menübasierten Regisseurliste, Erstellen eines Menüs aus Dateiinhalten usw. Wie Sie diese Arten von Aufgaben mit Bash implementieren können wählen Der Befehl wird in diesem Linux -Tutorial angezeigt.

Syntax:

Wählen Sie V in data_list aus
Tun
Erklärung1
Erklärung2
Erklärung3
Erledigt

Hier wird das Menüelement aus der Data_List erstellt, die ein Array oder eine andere Datenquelle sein kann. Jeder Menüelement ruft in der Data_List ab und speichert in einer Variablen, um das Menü zu erstellen. Der Befehl 'auswählen' kann mit dem Befehl 'Fall' verwendet werden, um auch das Menü zu erstellen. Hier werden verschiedene Arten von Menüerstellungsaufgaben mit sehr einfachen Beispielen angezeigt.

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' Der Befehl wird jede Daten aus der Liste abrufen und die Daten als Menü drucken. Das folgende Skript enthält die Markennamen von Mobiltelefonen und nach der Ausführung des Skript. Es druckt den Namen der ausgewählten Marke. Der Benutzer muss drücken Strg+c aus dem Skript zu beenden.

#!/Bin/Bash
# Definieren Sie hier die Menüliste
Wählen Sie die Marke in Samsung Sony iPhone Symphony Walton aus
Tun
Echo "Sie haben $ Brand gewählt"
Erledigt

Ausgang:

Führen Sie das Skript aus.

$ bash select1.Sch

Nach dem Ausführen des Skripts und der Auswahl der Menüelementnummer 1 und 4 wird die folgende Ausgabe angezeigt.

Beispiel 2: Wählen Sie den Befehl mit einer Fallanweisung aus

Wie Sie ein Bash -Menü mit Case -Anweisung erstellen können, wird in diesem Beispiel angezeigt. 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 Fallanweisung stimmt mit dem ausgewählten Wert mit dem Fallwert überein. Hier werden mehrere Fallwerte zum Übereinstimmung mit dem ausgewählten Menüelement verwendet. Wenn keiner des Fallwerts mit dem ausgewählten Menüelement übereinstimmt, druckt „Ungültiger Eintrag“ aus.

#!/Bin/Bash
echo "welches Betriebssystem mögen Sie mögen?"
# Betriebssystemnamen werden hier als Datenquelle verwendet
Wählen Sie das Betriebssystem in Ubuntu Linuxmint Windows8 Windows7 WindowsXP
Tun
Fall $ os in
# Zwei Fallwerte werden hier für die Übereinstimmung deklariert
"Ubuntu" | "Linuxmint")
echo "Ich benutze auch $ OS."
;;
# Drei Fallwerte werden hier für die Übereinstimmung deklariert
"Windows8" | "Windows7" ​​| "Windowsxp")
Echo "Warum versuchst du nicht Linux??"
;;
# Übereinstimmung mit ungültigen Daten
*)
Echo "Invaly -Eintrag"."
brechen
;;
ESAC
Erledigt

Ausgang:
Führen Sie das Skript aus.

$ bash select2.Sch

Die unterschiedliche Ausgabe wird für eine unterschiedliche Auswahl angezeigt. Hier wird 1 beim ersten Mal ausgewählt, wenn sie Ubuntu ist. Es entsprach mit dem ersten Fallwert, der die Nachricht gedruckt hat "Ich benutze auch Ubuntu". 4 wird das nächste Mal ausgewählt und der Menüelement ist Windows 7 Bei diesem Namen gibt es jedoch keinen Fallwert. Diesmal druckte es also "Ungültiger Eintrag" und aus dem Skript enden.

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

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

#!/Bin/Bash
während wahr
Tun
# Hier deklarierte Menüelemente der Eltern, die hier deklariert sind
Wählen Sie Element in Mausdrucker Monitor HDD
Tun
# Fallanweisung zum Vergleichen der ersten Menüelemente
Fall $ Item in
Maus)
echo "Welche Art von Monitor mögen Sie?"
;;
Drucker)
# Hier deklarierte Sub-Menus-Artikel hier hier deklariert
Wählen Sie sub_item in Samsung HP Dell
Tun
# Fallerklärung für Sonnenmenüs-Artikel
Fall $ sub_item in
Samsung)
Echo "Der Preis für Samsung -Drucker beträgt 100 US -Dollar"
brechen
;;
HP)
Echo "New HP 880 Druckerpreisdrucker kostet 450 US -Dollar"
# zum übergeordneten Menü zurückkehren
brechen
;;
Dell)
Echo "Kein Dell -Drucker ist ab sofort verfügbar"
# Kehren Sie zum übergeordneten Menü zurück
Break 2
;;
ESAC
Erledigt
brechen
;;
Monitor)
Echo "Kaufen Sie unseren neuen Samsung Monitor zu geringen Kosten"
Break # kehren Sie zum aktuellen (Haupt-) Menü zurück
;;
Festplatte)
Echo "gute Qualität HDD ist in der Aktie erhältlich"
# Kehren Sie aus dem Skript zurück
Break 2
ESAC
Erledigt
Erledigt

Ausgang:

Führen Sie das Skript aus.

$ bash select3.Sch

Nach dem Ausführen des Skripts das übergeordnete Menü mit 4 angezeigten Elementen. Hier enthält nur das zweite Menüelement des übergeordneten Menüs die Untermenü. Nach der Auswahl von 2 wurde der Untermenü angezeigt, und als der Benutzer 3 ausgewählt wurde.

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 Auswahlanweisung verwenden können, um ein Menü zu erstellen, wird in diesem Beispiel angezeigt. Erstellen Sie eine Bash -Datei mit dem Namen select4.Sch mit dem folgenden Bash -Skript. In diesem Skript wird Bash -Unterroutine verwendet, um ein Menü aus dem Array zu erstellen. Ein Array mit drei Elementen wird verwendet und Menü_From_array () ist aufgerufen, um das Menü zu erstellen. Das Skript wird überprüft, ob die ausgewählte Menüelementnummer zwischen 1-3 liegt oder nicht. Wenn die Nummer nicht in diesem Bereich liegt.

#!/Bin/Bash
Menü_From_array ()

Menüpunkt wählen; Tun
# Überprüfen Sie die ausgewählte Menüelementnummer
wenn [1 -le "$ antworten"] && ["$ beantwortet" -le $#];
Dann
Echo "Das ausgewählte Betriebssystem ist $ item"
brechen;
anders
Echo "Falsche Auswahl: Wählen Sie eine beliebige Nummer aus 1-$#"
fi
Erledigt

# Das Array deklarieren
Linux = ('Ubuntu' 'Linux Mint' 'Centos')
# Rufen Sie das Unterprogramm an, um das Menü zu erstellen
Menus_from_array "$ Linux [@]"

Ausgang:

Führen Sie das Skript aus.

$ bash select4.Sch

Hier wird 2 zuerst ausgewählt, der im Bereich liegt und den Text gedruckt hat. 6 wird beim zweiten Mal ausgewählt, das außerhalb des Bereichs liegt, und schlägt vor, dass der Benutzer eine Nummer innerhalb des Bereichs auswählen kann.


Um diesen Code zu verstehen, sollten wir ein paar Tricks lernen 😉

  • Weil das In Die Liste wird in den ausgewählten Positionsparametern nicht angegeben, in diesem Fall die Wörter im Array an die Funktion übergeben
  • $ Antwort speichert den Werteingang des Benutzers
  • Die logische wenn und bedingte in der Funktion ist die Überprüfung der Antwort zwischen 1 und die Größe des Positionsparameterarrays

Abschluss

Die Erstellung von Bash -Menü, indem eine ausgewählte Anweisung verwendet wird, wird in diesem Tutorial so einfach wie möglich erläutert. Es gibt viele einfache und ausgefallene Möglichkeiten, Select in Bash beim Erstellen von Menüs zu verwenden, und wir hoffen, dass diese Beispiele Ihnen einen Ausgangspunkt für die Erstellung Ihrer eigenen Kombinationen geben.