logo

Bash Če

V tej temi bomo razumeli, kako uporabljati če izjave v skriptih Bash za dokončanje naših avtomatiziranih nalog.

Udari, če so izjave koristne. Uporabljajo se za izvajanje pogojnih nalog v zaporednem toku izvajanja stavkov. Stavki If nam običajno omogočajo sprejemanje odločitev v naših skriptih Bash. Pomagajo nam, da se odločimo, ali bomo zagnali del kod ali ne na podlagi pogoja, ki ga lahko postavimo.

omrežje in internet

Osnovne izjave if

Osnovni stavek if ukazuje, da če je določen pogoj resničen, se izvede le dani niz dejanj. Če ni res, potem ne izvajajte teh dejanj. Če izjava temelji na naslednji obliki:

Sintaksa

 if [ expression ]; then statements fi 

Izjava med potem in biti (Če obratno) bo izveden le, če je izraz (med oglatimi oklepaji) resničen.

Opomba:Upoštevajte presledke v prvi vrstici in podpičje na koncu prve vrstice; oboje je obvezno za uporabo.Če je pogojna izjavakonča zbiti.

  • Za uporabo več pogojev z operatorjem IN:
 if [ expression_1 ] && [ expression_2 ]; then statements fi 
  • Za uporabo več pogojev z operatorjem ALI:
 if [ expression_1 ] || [ expression_2 ]; then statements fi 
  • Za sestavljene izraze z operatorjema IN & ALI lahko uporabimo naslednjo sintakso:
 if [ expression_1 && expression_2 || expression_3 ]; then statements fi 

Sledi nekaj primerov, ki prikazujejo uporabo stavka if:

Primer 1

V tem primeru uporabite uporabniški vnos poljubne številke in preverite, ali je vrednost večja od 125.

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

Izhod

Če vnesemo številko 159, bo rezultat videti takole:

Izjava Bash If

Primer 2

V tem primeru prikazujemo uporabo izjava if s preprostim scenarijem primerjave dveh nizov:

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

Izhod

c oblikovani niz
Izjava Bash If

Primer 3

V tem primeru prikazujemo, kako primerjati števila z uporabo stavka if:

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

Izhod

Izjava Bash If

Primer 4

V tem primeru bomo definirali, kako uporabiti operator IN za vključitev več pogojev v izraz if:

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

Izhod

Izjava Bash If

Primer 5

V tem primeru bomo definirali, kako uporabiti operator OR za vključitev več pogojev v izraz 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 

Izhod

Izjava Bash If

Primer 6

V tem primeru bomo definirali, kako uporabiti IN in ALI za vključitev več pogojev v izraz if:

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

Izhod

slf4j proti log4j
Izjava Bash If

Možnosti za stavek If v skriptiranju Bash

Stavek If vsebuje veliko možnosti za izvedbo določene naloge. Te možnosti se lahko uporabljajo za operacije z datotekami, operacije z nizi itd. Sledi nekaj najbolj uporabljenih možnosti:

-
Možnosti (operatorji) Opis
! IZRAZ Če želite preveriti, ali je EXPRESSION napačen.
-n STRING Če želite preveriti, ali je dolžina STRING večja od nič.
-z STRING Če želite preveriti, ali je dolžina STRING enaka nič (tj. je prazen)
STRING1 == STRING2 Če želite preveriti, ali je STRING1 enako STRING2.
STRING1 != STRING2 Če želite preveriti, ali STRING1 ni enako STRING2.
CELO ŠTEVILO1 -eq CELO ŠTEVILO2 Če želite preveriti, ali je INTEGER1 številčno enako INTEGER2.
CELO ŠTEVILO1 -gt CELO ŠTEVILO2 Če želite preveriti, ali je INTEGER1 številčno večje od INTEGER2.
CELO ŠTEVILO1 -lt CELO ŠTEVILO2 Če želite preveriti, ali je INTEGER1 številčno manjši od INTEGER2.
-d DATOTEKA Če želite preveriti, ali FILE obstaja in je imenik.
-e DATOTEKA Če želite preveriti, ali FILE obstaja.
-r DATOTEKA Če želite preveriti, ali FILE obstaja in ali je dovoljenje za branje odobreno.
-s DATOTEKA Za preverjanje, ali FILE obstaja in je njena velikost večja od nič (kar pomeni, da ni prazna).
-w DATOTEKA Če želite preveriti, ali FILE obstaja in ali je dovoljenje za pisanje odobreno.
x DATOTEKA Za preverjanje, ali FILE obstaja in ali je dovoljenje za izvajanje odobreno.

Ugnezdeni Če

Znotraj skripta bash lahko uporabite poljubno število stavkov if. Stavek if je mogoče uporabiti tudi znotraj drugega 'stavka if'. Znan je kot ugnezdeni stavek If.

Primer

V tem primeru bomo z uporabo ugnezdenega izraza if ugotovili, ali je dano število večje od 50 in ali je sodo število.

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

Izhod

Če vnesemo vrednost argumenta kot 100, bo rezultat videti tako:

Izjava Bash If

Zaključek

V tej temi smo razpravljali o tem, kako bi lahko uporabili pogojno razvejanje v zaporednem toku izvajanja stavkov s stavkom bash if.