Linux-opdrachten

Bash Select-opdracht

Bash Select-opdracht
'Selecteer' commando is een erg handig bash commando voor het maken van bash menu's. Verschillende soorten taken voor het genereren van menu's, het maken van een op menu's gebaseerde regisseurslijst, het maken van een menu van bestandsinhoud enz. kan worden gedaan met behulp van bash select commando. Hoe u dit soort taken kunt implementeren met behulp van de bash select-opdracht, wordt in deze zelfstudie getoond.

Syntaxis:

selecteer v in data_list
Doen
verklaring1
Verklaring2
Verklaring3
gedaan

Hier wordt het menu-item gemaakt op basis van de data_list die een array of een andere gegevensbron kan zijn. Elk menu-item wordt opgehaald uit de data_list en opgeslagen in een variabele om het menu te maken. Het 'Select'-commando kan ook worden gebruikt met het 'case'-commando om het menu te maken. Verschillende soorten taken voor het maken van menu's worden hier getoond aan de hand van zeer eenvoudige voorbeelden.

Voorbeeld-1: Een eenvoudig menu maken

Maak een bash-bestand met de naam selecteer1.sh met het volgende bash-script:. Hier, 'selecteren' commando haalt alle gegevens uit de lijst op en drukt de gegevens af als een menu. Het volgende script bevat de merknamen van mobiele telefoons en na het uitvoeren van het script zal het een menu met mobiele merken maken en de gebruiker vragen om een ​​willekeurig merk te kiezen. Het zal de naam van het geselecteerde merk afdrukken.  De gebruiker moet op drukken Ctrl+c beëindigen vanuit het script the.

#!/bin/bash
# Definieer hier de menulijst
selecteer merk in Samsung Sony iphone symfonie Walton
Doen
echo "Je hebt $brand gekozen"
gedaan

Uitgang:

Voer het script uit.

$ bash selecteren1.sh

De volgende uitvoer verschijnt na het uitvoeren van het script en het selecteren van menu-item nummer 1 en 4.

Voorbeeld-2: Selecteer opdracht met een case-statement

Hoe u een bash-menu met case-statement kunt maken, wordt in dit voorbeeld getoond. Maak een bash-bestand met de naam selecteer2.sh met het volgende bash-script:. Nadat het script is uitgevoerd, selecteert de gebruiker een menu-item en de case-instructie komt overeen met de geselecteerde waarde met de case-waarde. Hier worden meerdere hoofdletters gebruikt om te matchen met het geselecteerde menu-item. Als geen van de hoofdletters overeenkomt met het geselecteerde menu-item, wordt "Ongeldige invoer" afgedrukt.

#!/bin/bash
echo "Welk besturingssysteem vind je leuk??"
# Namen van besturingssystemen worden hier gebruikt als gegevensbron
selecteer os in Ubuntu LinuxMint Windows8 Windows7 WindowsXP
Doen
geval $os in
# Twee case-waarden worden hier gedeclareerd voor matching
"Ubuntu"|"LinuxMint")
echo "Ik gebruik ook $os."
;;
# Drie case-waarden worden hier gedeclareerd voor matching
"Windows8" | "Windows10" | "Windows XP")
echo "Waarom probeer je Linux niet??"
;;
# Matching met ongeldige gegevens
*)
echo "Ongeldige invoer."
breken
;;
esac
gedaan

Uitgang:
Voer het script uit.

$ bash selecteren2.sh

De verschillende output zal verschijnen voor verschillende selectie. Hier wordt 1 de eerste keer geselecteerd dat Ubuntu is. het kwam overeen met de eerste hoofdletterwaarde druk het bericht af “Ik gebruik ook Ubuntu”. 4 is de volgende keer geselecteerd en het menu-item is Windows7 maar er is geen case-waarde met deze naam. Dus deze keer gedrukt "Ongeldige invoer" en beëindigen vanuit het script.

Voorbeeld-3: Genest bash-menu maken

Wanneer een menu is gemaakt onder het menu van de ander, wordt het een genest menu genoemd. Het geneste menu kan in de basis worden gemaakt door twee of meer select- en case-statements te gebruiken. Maak een bash-bestand met de naam selecteer3.sh met het volgende bash-script:. Hier worden twee select- en case-statements gebruikt om het geneste menu te implementeren. Het bovenliggende menu bevat 4 items en het submenu bevat hier 3 items.

#!/bin/bash
terwijl het waar is
Doen
# Bovenliggende menu-items hier gedeclareerd
selecteer item in Muis Printer Monitor HDD
Doen
# case-statement om de eerste menu-items te vergelijken
geval $item in
Muis)
echo "Welk type monitor vind je leuk??"
;;
Printer)
# Submenu-items hier aangegeven hier
selecteer sub_item in Samsung HP Dell
Doen
# case-statement voor sun-menu-items
case $sub_item in
Samsung)
echo "De prijs van een Samsung-printer is $ 100"
breken
;;
PK)
echo "Nieuwe HP 880 printer prijs printer is $450"
# terug naar bovenliggende menu
breken
;;
Dell)
echo "Er is nu geen Dell-printer beschikbaar"
# terug naar het bovenliggende menu
breken 2
;;
esac
gedaan
breken
;;
Monitor)
echo "Koop onze nieuwe Samsung Monitor tegen lage kosten"
break # terug naar huidig ​​(hoofd)menu
;;
harde schijf)
echo "Goede kwaliteit HDD zijn op voorraad"
# terugkeer uit het script
breken 2
esac
gedaan
gedaan

Uitgang:

Voer het script uit.

$ bash selecteren3.sh

Nadat het script is uitgevoerd, wordt het bovenliggende menu met 4 items weergegeven. Hier bevat alleen het tweede menu-item van het bovenliggende menu een submenu. Na het selecteren van 2 verscheen het submenu en toen de gebruiker 3 selecteerde, werd het bijbehorende bericht van menu-item 3 weergegeven en keerde terug naar het hoofdmenu.

Voorbeeld-4: Maak een bash-menu met een array

Een arrayvariabele kan meerdere gegevens opslaan. U kunt dus een array gebruiken als een gegevenslijst voor het maken van een basismenu. Hoe u een array met een select-statement kunt gebruiken om een ​​menu te maken, wordt in dit voorbeeld getoond. Maak een bash-bestand met de naam selecteer4.sh met het volgende bash-script:. Bash-subroutine wordt in dit script gebruikt om een ​​menu van de array te maken. Er wordt een array met drie elementen gebruikt en menu_from_array () wordt geroepen om het menu te maken. Het script controleert of het geselecteerde menu-itemnummer tussen 1-3 ligt of niet. Als het nummer niet binnen dit bereik valt, zal het de gebruiker instrueren om het binnen dit bereik te selecteren, het zal het menu-item selecteren met andere tekst afdrukken.

menu_from_array ()

selecteer item; Doen
# Controleer het geselecteerde menu-itemnummer
if [ 1 -le "$REPLY" ] && [ "$REPLY" -le $# ];
dan
echo "Het geselecteerde besturingssysteem is $item"
breken;
anders
echo "Verkeerde selectie: selecteer een willekeurig nummer uit 1-$#"
fi
gedaan

# Declareer de array
linux=('Ubuntu' 'Linux Mint' 'CentOS')
# Roep de subroutine op om het menu te maken
menu_from_array "$linux[@]"

Uitgang:

Voer het script uit.

$ bash selecteren4.sh

Hier wordt eerst 2 geselecteerd die binnen het bereik valt en de tekst wordt afgedrukt. 6 wordt de tweede keer geselecteerd dat buiten bereik is en stel voor dat de gebruiker een nummer binnen het bereik selecteert.

Conclusie

De taak om het bash-menu te maken met behulp van een select-statement wordt in deze tutorial zo eenvoudig mogelijk uitgelegd. Hope, de programmeur die geïnteresseerd is om aan het bash-menu te werken en bash select-statement te leren, krijgt hulp van deze tutorial. Dank u.

Hoe de GameConqueror Cheat Engine in Linux te gebruiken
Het artikel bevat een handleiding over het gebruik van de GameConqueror cheat-engine in Linux. Veel gebruikers die games op Windows spelen, gebruiken ...
Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...
Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...