logo

Bash If

I dette emnet vil vi forstå hvordan du bruker hvis uttalelser i Bash-skript for å få våre automatiserte oppgaver fullført.

Bash hvis uttalelser er fordelaktige. De brukes til å utføre betingede oppgaver i den sekvensielle flyten av utførelse av uttalelser. Hvis uttalelser vanligvis lar oss ta avgjørelser i våre Bash-manus. De hjelper oss med å bestemme om vi skal kjøre et stykke koder basert på betingelsen vi kan sette.

Grunnleggende if-uttalelser

En grunnleggende if-setning befaler at hvis en bestemt betingelse er sann, så bare utfør et gitt sett med handlinger. Hvis det ikke er sant, så ikke utfør disse handlingene. Hvis setningen er basert på følgende format:

Syntaks

 if [ expression ]; then statements fi 

Utsagnet mellom deretter og være (Hvis bakover) vil kun utføres hvis uttrykket (mellom hakeparentesene) er sant.

Merk:Observer mellomrommene som brukes i den første linjen og et semikolon på slutten av den første linjen; begge er obligatoriske å bruke.Hvis betinget erklæringslutter medvære.

  • For bruk av flere forhold med AND-operator:
 if [ expression_1 ] && [ expression_2 ]; then statements fi 
  • For bruk av flere forhold med OR-operatør:
 if [ expression_1 ] || [ expression_2 ]; then statements fi 
  • For sammensatte uttrykk med AND & OR-operatorer kan vi bruke følgende syntaks:
 if [ expression_1 && expression_2 || expression_3 ]; then statements fi 

Følgende er noen eksempler som demonstrerer bruken av if-setning:

Eksempel 1

I dette eksemplet tar du en brukerinndata for et hvilket som helst tall og kontrollerer om verdien er større enn 125.

 #!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi 

Produksjon

Hvis vi skriver inn tallet 159, vil utgangen se slik ut:

Bash If-uttalelse

Eksempel 2

I dette eksemplet demonstrerer vi bruken av hvis uttalelse med et enkelt scenario for å sammenligne to strenger:

 #!/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 

Produksjon

Bash If-uttalelse

Eksempel 3

I dette eksemplet viser vi hvordan man sammenligner tall ved å bruke if-setningen:

 #!/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 

Produksjon

Bash If-uttalelse

Eksempel 4

I dette eksemplet vil vi definere hvordan AND-operatoren skal brukes for å inkludere flere betingelser i if-uttrykket:

 #!/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 

Produksjon

Bash If-uttalelse

Eksempel 5

I dette eksemplet vil vi definere hvordan du bruker OR-operatoren for å inkludere flere betingelser i if-uttrykket:

 #!/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 

Produksjon

Bash If-uttalelse

Eksempel 6

I dette eksemplet vil vi definere hvordan du bruker AND og OR for å inkludere flere betingelser i if-uttrykket:

 #!/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 

Produksjon

Bash If-uttalelse

Alternativer for If-setning i Bash Scripting

If-setningen inneholder mange alternativer for å utføre en spesifikk oppgave. Disse alternativene kan brukes til filoperasjoner, strengoperasjoner osv. Følgende er noen av de mest brukte alternativene:

-
Alternativer (operatører) Beskrivelse
! UTTRYKK For å sjekke om EXPRESSION er falsk.
-n STRING For å sjekke om lengden på STRING er større enn null.
-z STRING For å sjekke om lengden på STRING er null (dvs. den er tom)
STRING1 == STRING2 For å sjekke om STRING1 er lik STRING2.
STRING1 != STRING2 For å sjekke om STRING1 ikke er lik STRING2.
INTEGER1 -eq INTEGER2 For å sjekke om INTEGER1 er numerisk lik INTEGER2.
HELTAL1 -gt HELTAL2 For å sjekke om INTEGER1 er numerisk større enn INTEGER2.
HELTAL1 -lt HELTAL2 For å sjekke om INTEGER1 er numerisk mindre enn INTEGER2.
-d FIL For å sjekke om FILE eksisterer og det er en katalog.
-e FIL For å sjekke om FILE eksisterer.
-r FIL For å sjekke om FILE eksisterer og lesetillatelsen er gitt.
-s FIL For å sjekke om FIL eksisterer og størrelsen er større enn null (som betyr at den ikke er tom).
-w FIL For å sjekke om FILE eksisterer og skrivetillatelse er gitt.
x FIL For å sjekke om FILE eksisterer og utføringstillatelsen er gitt.

Nestet hvis

Du kan bruke så mange 'if-utsagn' som kreves i bash-skriptet ditt. Det er også mulig å bruke en if-setning i en annen 'if-setning'. Det er kjent som Nested If Statement.

Eksempel

I dette eksemplet vil vi finne 'hvis et gitt tall er større enn 50 og hvis det er et partall' ved å bruke nestet if-uttrykk.

 #!/bin/bash #Nested if statement if [ $1 -gt 50 ] then echo 'Number is greater than 50.' if (( $1 % 2 == 0 )) then echo 'and it is an even number.' fi fi 

Produksjon

Hvis vi legger inn en argumentverdi som 100, vil utgangen se slik ut:

Bash If-uttalelse

Konklusjon

I dette emnet diskuterte vi hvordan vi kunne bruke betinget forgrening i den sekvensielle flyten av utførelse av setninger med bash if-setning.