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