logo

Bash If

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:

Bash If uttalande

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

Bash If uttalande

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

Bash If uttalande

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
Bash If uttalande

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

Bash If uttalande

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

Bash If uttalande

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:

Bash If uttalande

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.