logo

Bash If

V tejto téme pochopíme, ako používať ak výroky v skriptoch Bash, aby sme dokončili naše automatizované úlohy.

Bash, ak sú vyhlásenia prospešné. Používajú sa na vykonávanie podmienených úloh v sekvenčnom toku vykonávania príkazov. Ak nám príkazy zvyčajne umožňujú robiť rozhodnutia v našich Bash skriptoch. Pomáhajú nám rozhodnúť sa, či spustiť alebo nespustiť časť kódov na základe podmienok, ktoré môžeme nastaviť.

Základné príkazy if

Základný príkaz if prikazuje, že ak je konkrétna podmienka pravdivá, vykoná sa iba daný súbor akcií. Ak to nie je pravda, potom tieto akcie nevykonávajte. Ak je vyhlásenie založené na nasledujúcom formáte:

Syntax

 if [ expression ]; then statements fi 

Výrok medzi potom a byť (Ak spätne) sa vykoná len vtedy, ak je výraz (medzi hranatými zátvorkami) pravdivý.

Poznámka:Dodržujte medzery použité v prvom riadku a bodkočiarku na konci prvého riadku; oboje je povinné používať.Ak podmienečné vyhláseniekončí sbyť.

  • Pre použitie viacerých podmienok s operátorom AND:
 if [ expression_1 ] && [ expression_2 ]; then statements fi 
  • Pre použitie viacerých podmienok s operátorom OR:
 if [ expression_1 ] || [ expression_2 ]; then statements fi 
  • Pre zložené výrazy s operátormi AND & OR môžeme použiť nasledujúcu syntax:
 if [ expression_1 && expression_2 || expression_3 ]; then statements fi 

Nasleduje niekoľko príkladov demonštrujúcich použitie príkazu if:

Príklad 1

V tomto príklade zadajte ľubovoľné číslo používateľa a skontrolujte, či je hodnota väčšia ako 125.

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

Výkon

Ak zadáme číslo 159, výstup bude vyzerať takto:

binárny strom java
Vyhlásenie Bash If

Príklad 2

V tomto príklade demonštrujeme použitie ak vyhlásenie s jednoduchým scenárom porovnávania dvoch reťazcov:

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

Výkon

Vyhlásenie Bash If

Príklad 3

V tomto príklade demonštrujeme, ako porovnávať čísla pomocou príkazu 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 

Výkon

Vyhlásenie Bash If

Príklad 4

V tomto príklade definujeme, ako použiť operátor AND na zahrnutie viacerých podmienok do výrazu 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 

Výkon

Vyhlásenie Bash If

Príklad 5

V tomto príklade definujeme, ako použiť operátor OR na zahrnutie viacerých podmienok do výrazu 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 

Výkon

Vyhlásenie Bash If

Príklad 6

V tomto príklade definujeme, ako používať AND a OR na zahrnutie viacerých podmienok do výrazu 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 

Výkon

css pre tučné písmo
Vyhlásenie Bash If

Možnosti pre príkaz If v skriptovaní Bash

Ak príkaz obsahuje veľa možností na vykonanie konkrétnej úlohy. Tieto možnosti možno použiť na operácie so súbormi, operácie s reťazcami atď. Nasledujú niektoré najčastejšie používané možnosti:

binárny strom
-
Možnosti (operátori) Popis
! VÝRAZ Ak chcete skontrolovať, či je výraz EXPRESSION nepravdivý.
-n STRING Ak chcete skontrolovať, či je dĺžka STRING väčšia ako nula.
-z STRING Ak chcete skontrolovať, či je dĺžka STRING nula (t. j. je prázdna)
STRING1 == STRING2 Ak chcete skontrolovať, či sa STRING1 rovná STRING2.
STRING1 != STRING2 Ak chcete skontrolovať, či sa STRING1 nerovná STRING2.
INTEGER1 -ekv INTEGER2 Ak chcete skontrolovať, či sa INTEGER1 číselne rovná INTEGER2.
INTEGER1 -gt INTEGER2 Ak chcete skontrolovať, či je INTEGER1 číselne väčšie ako INTEGER2.
INTEGER1 -lt INTEGER2 Ak chcete skontrolovať, či je INTEGER1 číselne menšie ako INTEGER2.
-d SÚBOR Ak chcete skontrolovať, či FILE existuje a či je to adresár.
-e SÚBOR Ak chcete skontrolovať, či FILE existuje.
-r SÚBOR Ak chcete skontrolovať, či FILE existuje a či je udelené povolenie na čítanie.
-s SÚBOR Na kontrolu, či FILE existuje a jeho veľkosť je väčšia ako nula (čo znamená, že nie je prázdny).
-w SÚBOR Ak chcete skontrolovať, či FILE existuje a či je udelené povolenie na zápis.
x SÚBOR Na kontrolu, či FILE existuje a či je udelené povolenie na spustenie.

Vnorené Ak

Vo svojom bash skripte môžete použiť toľko príkazov „if“, koľko sa vyžaduje. Je tiež možné použiť príkaz if v rámci iného príkazu „if“. Je známy ako Nested If Statement.

Príklad

V tomto príklade nájdeme „ak je dané číslo väčšie ako 50 a ak je párne číslo“ pomocou vnoreného výrazu if.

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

Výkon

Ak zadáme hodnotu argumentu ako 100, výstup bude vyzerať takto:

Vyhlásenie Bash If

Záver

V tejto téme sme diskutovali o tom, ako by sme mohli použiť podmienené vetvenie v sekvenčnom toku vykonávania príkazov pomocou príkazu bash if.