I det här ämnet kommer vi att förstå hur man använder om uttalanden i Bash-skript för att få våra automatiserade uppgifter slutförda.
Bash om uttalanden är fördelaktiga. De används för att utföra villkorade uppgifter i det sekventiella flödet av exekvering av uttalanden. Om uttalanden vanligtvis tillåter oss att fatta beslut i våra Bash-manus. De hjälper oss att bestämma om vi ska köra en del koder eller inte baserat på det villkor som vi kan ställa in.
java switch uttalande
Grundläggande if-uttalanden
En grundläggande if-sats ger kommandon om att om ett visst villkor är sant, utför endast en given uppsättning åtgärder. Om det inte är sant, utför inte dessa åtgärder. Om uttalandet är baserat på följande format:
Syntax
if [ expression ]; then statements fi
Uttalandet mellan sedan och vara (Om baklänges) kommer endast att exekveras om uttrycket (mellan hakparenteserna) är sant.
Notera:Observera mellanrummen som används i den första raden och ett semikolon i slutet av den första raden; båda är obligatoriska att använda.Om villkorligt uttalandeslutar medvara.
- För användning av flera villkor med AND-operator:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- För att använda flera villkor med OR-operator:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- För sammansatta uttryck med AND & OR-operatorer kan vi använda följande syntax:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Följande är några exempel som visar användningen av if-satsen:
Exempel 1
I det här exemplet, ta en användarinmatning av valfritt antal och kontrollera om värdet är större än 125.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Produktion
Om vi anger siffran 159, kommer utgången att se ut så här:
Exempel 2
I det här exemplet visar vi användningen av om uttalande med ett enkelt scenario att jämföra två strängar:
#!/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
Produktion
Exempel 3
I det här exemplet visar vi hur man jämför siffror genom att använda if-satsen:
#!/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
Produktion
Exempel 4
I det här exemplet kommer vi att definiera hur man använder AND-operatorn för att inkludera flera villkor i if-uttrycket:
#!/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
Produktion
sdlc
Exempel 5
I det här exemplet kommer vi att definiera hur man använder OR-operatorn för att inkludera flera villkor i uttrycket if:
#!/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
Produktion
Exempel 6
I det här exemplet kommer vi att definiera hur AND och OR ska användas för att inkludera flera villkor i if-uttrycket:
#!/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
Produktion
Alternativ för If-sats i Bash Scripting
If-satsen innehåller många alternativ för att utföra en specifik uppgift. Dessa alternativ kan användas för filoperationer, strängoperationer, etc. Följande är några av de mest använda alternativen:
Alternativ (operatörer) | Beskrivning |
---|---|
! UTTRYCK | För att kontrollera om EXPRESSION är falskt. |
-n STRING | För att kontrollera om längden på STRING är större än noll. |
-z STRING | För att kontrollera om längden på STRING är noll (dvs. den är tom) |
STRING1 == STRING2 | För att kontrollera om STRING1 är lika med STRING2. |
STRING1 != STRING2 | För att kontrollera om STRING1 inte är lika med STRING2. |
HELTAL1 -eq HELTAL2 | För att kontrollera om HELTAL1 är numeriskt lika med HELTAL2. |
HELTAL1 -gt HELTAL2 | För att kontrollera om HELTAL1 är numeriskt större än HELTAL2. |
HELTAL1 -lt HELTAL2 | För att kontrollera om HELTAL1 är numeriskt mindre än HELTAL2. |
-d FIL | För att kontrollera om FILE finns och det är en katalog. |
-e FIL | För att kontrollera om FIL finns. |
-r FIL | För att kontrollera om FILE finns och läsbehörighet beviljas. |
-s FIL | För att kontrollera om FIL finns och dess storlek är större än noll (vilket betyder att den inte är tom). |
-w FIL | För att kontrollera om FILE finns och skrivbehörighet beviljas. |
x FIL | För att kontrollera om FILE finns och exekveringsbehörighet beviljas. |
Kapslad If
Du kan använda så många 'if-satser' som krävs i ditt bash-skript. Det är också möjligt att använda en if-sats i en annan 'if-sats'. Det är känt som Nested If Statement.
Exempel
I det här exemplet hittar vi 'om ett givet tal är större än 50 och om det är ett jämnt tal' genom att använda kapslade if-uttryck.
#!/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
Produktion
Om vi matar in ett argumentvärde som 100, kommer utdata att se ut så här:
Slutsats
I det här ämnet diskuterade vi hur vi kan använda villkorlig förgrening i det sekventiella flödet av exekvering av uttalanden med bash if-sats.