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:
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
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
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
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
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
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:
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.