Linux-opdrachten

BASH Case-opdracht

BASH Case-opdracht

Bash case-opdracht wordt gebruikt om de juiste actie te ondernemen door gegevens te vergelijken, zoals if-statement. Het werkt als een switch-case-statement van andere standaard programmeertalen. Deze opdracht begint met de instructie 'case' en sluit af met de instructie 'esac'. Er wordt geen break-instructie gebruikt in het case-commando en dubbele haakjes (;;) zijn vereist om de instructie(s) voor een bepaalde overeenkomst te vermelden. Deze opdracht breidt de uitdrukking uit en probeert te matchen met het gegeven patroon en de exit-statuscode van deze opdracht zal nul zijn als er geen overeenkomst wordt gevonden. In deze zelfstudie worden enkele veelvoorkomende voorbeelden van case-statements getoond.

Voorbeeld-1: eenvoudige case-statement

Een enkele voorwaardelijke expressie wordt gebruikt in de bash case-opdracht om de uitvoer te genereren op basis van de overeenkomende voorwaarde. Maak een bash-bestand met de naam zaak 1.sh met het volgende bash-script:. Het script zal een stringwaarde aannemen en de waarde matchen met elke expressie. Het volgende script genereert "No Entry Found" als er geen overeenkomende expressie bestaat,
zaak 1.sh

#!/bin/bash
echo "Typ je naam"
lees naam
geval $naam in
jamin)
echo "Je favoriete kleur is blauw" ;;
Fahmida)
echo "Je favoriete drankje is Sprite" ;;
*)
echo "Geen invoer gevonden" ;;
esac

Voer het script uit.

$ bash geval1.sh

Uitgang:

Het bestand wordt hier uitgevoerd met een geldige en ongeldige invoer om de uitvoer te testen.

Voorbeeld-2: instructie met meerdere hoofdletters met pijp

In het bash-script kunnen meerdere hoofdletterexpressies worden toegepast om verschillende soorten instructies uit te voeren. Het pijpsymbool ( | ) kan worden gebruikt om meerdere uitdrukkingen toe te wijzen. Maak een bash-bestand met de naam geval2.sh met het volgende script. Als na het uitvoeren van het script de invoerwaarde overeenkomt met een uitdrukking, wordt de bijbehorende tekstwaarde afgedrukt.
geval2.sh

#!/bin/bash
echo "Typ uw ID-nummer"
lees ID
geval $ID in
65341)
echo "Uw positie is 1e" ;;
97564|88453)
echo "Uw positie is 2e" ;;
45087)
echo "Uw positie is 3e" ;;
*)
echo "Ongeldige ID" ;;
esac

Voer het script uit .

$ bash geval2.sh

Uitgang:

Dit script werkt ook zoals het vorige voorbeeld. Het enige verschil is dat de waarden voor meerdere expressies worden getest voor een enkele uitvoer.

Voorbeeld-3: Hoe te stoppen vanuit case/esac-statementblok

Wanneer de bash case-opdracht wordt gebruikt onder een oneindige lus, moet de exit-opdracht worden gebruikt om de lus te beƫindigen. Dit voorbeeld laat zien hoe dit soort taken kan worden uitgevoerd. Maak een tekstbestand met de naam geval3.sh met het volgende script. Dit script neemt elk nummer van 1 tot 3 als invoer to. Als de invoer 1 is, worden er twee getallen opgeteld, als de invoer 2 is, worden er twee getallen afgetrokken en als het ingevoerde getal 3 is, worden er twee getallen vermenigvuldigd. De uitvoer is "Ongeldige invoer" als het invoernummer meer dan 3 of minder dan 1 of leeg is.
geval3.sh

#!/bin/bash
#!/bin/bash
terwijl (waar)
Doen
a=8
b=4
((x=$a+$b))
((y=$a-$b))
((z=$a*$b))
echo "Type 1 of 2 of 3"
lees antw
geval $ans in
1) echo "De som van $a en $b is $x & exit" ;;
2) echo "De aftrekking van $a en $b is $y & exit" ;;
3) echo "De vermenigvuldiging van $a en $b is $z & exit" ;;
*) echo "Ongeldige invoer"
esac
gedaan

Voer het script uit.

$ bash geval3.sh

Uitgang:

Het script wordt uitgevoerd totdat ctrl+c wordt ingedrukt.

Voorbeeld-4: lege opdrachtregelargumentwaarde controleren

Commandoregelargumentvariabele kan worden gebruikt in de bash case-instructie. Maak een bestand met de naam geval4.sh met het volgende script dat de waarde van de tweede argumentvariabele controleert check.

#!/bin/bash
geval "$2" in
"Ubuntu")
echo "Het tweede argument is $2."
;;
"CentOS")
echo "Het tweede argument is $2."
;;
"")
echo "Het tweede argument is leeg."
;;
esac

Voer het script uit.

$ bash geval4.sh

Uitgang:

Hier wordt het script voor de eerste keer uitgevoerd zonder een tweede opdrachtregelargumentwaarde en de uitvoer toont "Het tweede argument is leeg". Wanneer het script voor de tweede keer wordt uitgevoerd met een tweede opdrachtregelargumentwaarde, wordt er geen uitvoer weergegeven.

Voorbeeld-5: meerdere case-statement op basis van gebruikersinvoer

Maak een bash-bestand met de naam geval5.sh met het volgende script. Het script heeft de naam van de maand nodig als gebruikersinvoer. Als de naam van de maand overeenkomt met een hoofdletterwaarde, wordt een bepaald sms-bericht toegewezen aan de variabele Bericht. Invoerwaarde moet de naam van de volledige maand zijn of de naam van de maand van drie tekens.

geval5.sh

#!/bin/bash
echo "Typ de naam van een maand"
lees maand
geval $ maand in
januari|jan*)
Message=" 21 februari is onze internationale moederdag."
;;
februari|feb*)
Message=" 21 februari is onze internationale moederdag."
;;
maart|maart*)
Message = "9 maart is de wereldnierdag."
;;
april|april*)
Message="De huidige maand is niet februari"
;;
mei|mei*)
Message="De huidige maand is februari"
;;
juni|juni*)
Message="De huidige maand is februari"
;;
*)
Message="Geen overeenkomende informatie gevonden"
;;
esac
echo $Bericht

Voer het script uit.

$ bash geval5.sh

Uitgang:

De volgende uitvoer verschijnt voor de invoerwaarde, 'maart' of 'maart'.

Voorbeeld-6: Controleer variabele in de bash case-instructie

Elke tekenreekswaarde kan worden afgedrukt door de waarde van de opdrachtregelargumentvariabele te controleren. Maak een tekstbestand met de naam geval6.sh met het volgende script. In dit voorbeeld wordt de waarde van de eerste argumentvariabele gecontroleerd en als de waarde leeg is, wordt een string, "I like bash programming" afgedrukt.

geval6.sh

#!/bin/bash
geval $1 in
("") echo "Ik hou van bash-programmering";
esac

Voer het script uit.

$ bash geval6.sh

Uitgang:

Dit script wordt uitgevoerd met en zonder eerste argumenten. Er zal geen uitvoer zijn als er geen argumentvariabele in de opdrachtregel wordt doorgegeven.

Conclusie

Verschillende toepassingen van bash case-commando's worden in dit artikel getoond. Als de lezers deze voorbeelden goed oefenen, zal het voor hen gemakkelijker zijn om veel bash-programmeerproblemen op te lossen.

AppyMouse trackpad en muisaanwijzer op het scherm voor Windows-tablets
Tabletgebruikers missen vaak de muisaanwijzer, vooral wanneer ze gewend zijn om de laptop te gebruiken. Het touchscreen Smartphones en tablets hebben ...
Middelste muisknop werkt niet in Windows 10
De middelste muis knop helpt u door lange webpagina's en schermen met veel gegevens te bladeren. Als dat stopt, zul je uiteindelijk het toetsenbord ge...
Hoe de linker- en rechtermuisknop op Windows 10 pc te veranderen
Het is nogal een norm dat alle computermuisapparaten ergonomisch zijn ontworpen voor rechtshandige gebruikers. Maar er zijn muisapparaten beschikbaar ...