In dit onderwerp zullen we begrijpen hoe te gebruiken als uitspraken in Bash-scripts om onze geautomatiseerde taken te voltooien.
Bash als uitspraken nuttig zijn. Ze worden gebruikt om voorwaardelijke taken uit te voeren in de sequentiële stroom van uitvoering van instructies. If-statements stellen ons meestal in staat beslissingen te nemen in onze Bash-scripts. Ze helpen ons te beslissen of we een stukje code wel of niet moeten uitvoeren, op basis van de voorwaarde die we stellen.
Basis if-verklaringen
Een eenvoudige if-instructie geeft de opdracht dat als een bepaalde voorwaarde waar is, alleen een bepaalde reeks acties moet worden uitgevoerd. Als het niet waar is, voer die acties dan niet uit. Als de verklaring is gebaseerd op het volgende formaat:
Syntaxis
if [ expression ]; then statements fi
De verklaring tussen Dan En zijn (If backwards) wordt alleen uitgevoerd als de uitdrukking (tussen de vierkante haakjes) waar is.
Opmerking:Let op de spaties die in de eerste regel worden gebruikt en op een puntkomma aan het einde van de eerste regel; beide zijn verplicht om te gebruiken.Indien voorwaardelijke verklaringeindigt metzijn.
- Voor het gebruik van meerdere voorwaarden met AND-operator:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- Voor het gebruik van meerdere voorwaarden met de OR-operator:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- Voor samengestelde expressies met AND & OR-operatoren kunnen we de volgende syntaxis gebruiken:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Hieronder volgen enkele voorbeelden die het gebruik van de if-instructie demonstreren:
voorbeeld 1
In dit voorbeeld neemt u een gebruikersinvoer van een willekeurig getal en controleert u of de waarde groter is dan 125.
arrays java
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Uitvoer
Als we het getal 159 invoeren, ziet de uitvoer er als volgt uit:
Voorbeeld 2
In dit voorbeeld demonstreren we het gebruik van als verklaring met een eenvoudig scenario waarin twee strings worden vergeleken:
#!/bin/bash # if condition is true if [ 'myfile' == 'myfile' ]; then echo 'true condition' fi # if condition is false if [ 'myfile' == 'yourfile' ]; then echo 'false condition' fi
Uitvoer
Voorbeeld 3
In dit voorbeeld laten we zien hoe u getallen kunt vergelijken met behulp van de if-instructie:
#!/bin/bash #if condition (greater than) is true if [ 10 -gt 3 ]; then echo '10 is greater than 3.' fi #if condition (greater than) is false if [ 3 -gt 10 ]; then echo '3 is not greater than 10.' fi #if condition (lesser than) is true if [ 3 -lt 10 ]; then echo '3 is less than 10.' fi #if condition (lesser than) is false if [ 10 -lt 3 ]; then echo '10 is not less than 3.' fi #if condition (equal to) is true if [ 10 -eq 10 ]; then echo '10 is equal to 10.' fi #if condition (equal to) is false if [ 10 -eq 9 ]; then echo '10 is not equal to 9' fi
Uitvoer
Voorbeeld 4
In dit voorbeeld definiëren we hoe de AND-operator moet worden gebruikt om meerdere voorwaarden op te nemen in de if-expressie:
#!/bin/bash # TRUE && TRUE if [ 8 -gt 6 ] && [ 10 -eq 10 ]; then echo 'Conditions are true' fi # TRUE && FALSE if [ 'mylife' == 'mylife' ] && [ 3 -gt 10 ]; then echo 'Conditions are false' fi
Uitvoer
java nulcontrole
Voorbeeld 5
In dit voorbeeld definiëren we hoe de OR-operator moet worden gebruikt om meerdere voorwaarden op te nemen in de if-expressie:
#!/bin/bash # TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo ' Condition is true. ' fi # FALSE || FALSE if [ 'mylife' == 'yourlife' ] || [ 3 -gt 10 ]; then echo ' Condition is false. ' fi
Uitvoer
Voorbeeld 6
In dit voorbeeld definiëren we hoe AND en OR moeten worden gebruikt om meerdere voorwaarden op te nemen in de if-expressie:
#!/bin/bash # TRUE && FALSE || FALSE || TRUE if [[ 10 -eq 10 && 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo 'Condition is true.' fi # TRUE && FALSE || FALSE if [[ 8 -eq 8 && 8 -gt 10 || 9 -lt 5 ]]; then echo 'Condition is false' fi
Uitvoer
Opties voor If-instructie in Bash-scripting
De If-instructie bevat veel opties om een specifieke taak uit te voeren. Deze opties kunnen worden gebruikt voor bestandsbewerkingen, tekenreeksbewerkingen, enz. Hieronder volgen enkele meest gebruikte opties:
Opties (operatoren) | Beschrijving |
---|---|
! UITDRUKKING | Om te controleren of EXPRESSION onwaar is. |
-n STREEK | Om te controleren of de lengte van STRING groter is dan nul. |
-z STREEK | Controleren of de lengte van STRING nul is (dat wil zeggen dat deze leeg is) |
STRING1 == STRING2 | Om te controleren of STRING1 gelijk is aan STRING2. |
STRING1 != STRING2 | Om te controleren of STRING1 niet gelijk is aan STRING2. |
INTEGER1 -eq INTEGER2 | Om te controleren of INTEGER1 numeriek gelijk is aan INTEGER2. |
INTEGER1 -gt INTEGER2 | Om te controleren of INTEGER1 numeriek groter is dan INTEGER2. |
INTEGER1 -lt INTEGER2 | Om te controleren of INTEGER1 numeriek kleiner is dan INTEGER2. |
-d BESTAND | Om te controleren of BESTAND bestaat en het een map is. |
-e BESTAND | Om te controleren of BESTAND bestaat. |
-r BESTAND | Om te controleren of BESTAND bestaat en de leesmachtiging is verleend. |
-s BESTAND | Om te controleren of BESTAND bestaat en de grootte ervan groter is dan nul (wat betekent dat het niet leeg is). |
-w BESTAND | Om te controleren of BESTAND bestaat en de schrijfrechten zijn verleend. |
x BESTAND | Om te controleren of BESTAND bestaat en de uitvoeringsmachtiging is verleend. |
Geneste Als
Je kunt zoveel 'if-statements' toepassen als nodig is in je bash-script. Het is ook mogelijk om een if-statement binnen een ander 'if-statement' te gebruiken. Het staat bekend als Geneste If-instructie.
Voorbeeld
In dit voorbeeld zullen we ontdekken 'of een bepaald getal groter is dan 50 en of het een even getal is' met behulp van de geneste if-expressie.
#!/bin/bash #Nested if statement if [ -gt 50 ] then echo 'Number is greater than 50.' if (( % 2 == 0 )) then echo 'and it is an even number.' fi fi
Uitvoer
Als we een argumentwaarde van 100 invoeren, ziet de uitvoer er als volgt uit:
Conclusie
In dit onderwerp hebben we besproken hoe we voorwaardelijke vertakking kunnen gebruiken in de sequentiële stroom van uitvoering van instructies met de bash if-instructie.