У цій темі ми розберемося, як користуватися оператори if у сценаріях Bash для виконання наших автоматизованих завдань.
Баш, якщо твердження є корисними. Вони використовуються для виконання умовних завдань у послідовному потоці виконання операторів. Інструкції If зазвичай дозволяють нам приймати рішення в наших сценаріях Bash. Вони допомагають нам вирішити, запускати чи ні фрагмент коду на основі умов, які ми можемо встановити.
Основні оператори if
Базовий оператор if наказує, що якщо конкретна умова є істинною, виконувати лише певний набір дій. Якщо це не так, то не виконуйте ці дії. Оператор If базується на такому форматі:
Синтаксис
if [ expression ]; then statements fi
Заява між потім і бути (Якщо навпаки) буде виконано, лише якщо вираз (між квадратними дужками) є істинним.
Примітка:Зверніть увагу на пробіли в першому рядку та крапку з комою в кінці першого рядка; обидва є обов'язковими для використання.Якщо умовний операторзакінчується набути.
- Для використання кількох умов з оператором І:
if [ expression_1 ] && [ expression_2 ]; then statements fi
- Для використання кількох умов з оператором АБО:
if [ expression_1 ] || [ expression_2 ]; then statements fi
- Для складених виразів з операторами AND & OR ми можемо використовувати такий синтаксис:
if [ expression_1 && expression_2 || expression_3 ]; then statements fi
Нижче наведено кілька прикладів, що демонструють використання оператора if:
Приклад 1
У цьому прикладі візьміть будь-яке число, введене користувачем, і перевірте, чи значення більше 125.
#!/bin/bash read -p ' Enter number : ' number if [ $number -gt 125 ] then echo 'Value is greater than 125' fi
Вихід
Якщо ми введемо число 159, то результат буде виглядати так:
Приклад 2
У цьому прикладі ми демонструємо використання оператор if з простим сценарієм порівняння двох рядків:
#!/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
Вихід
Приклад 3
У цьому прикладі ми демонструємо, як порівнювати числа за допомогою оператора 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
Вихід
Приклад 4
У цьому прикладі ми визначимо, як використовувати оператор І для включення кількох умов у вираз 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
Вихід
Приклад 5
У цьому прикладі ми визначимо, як використовувати оператор АБО для включення кількох умов у вираз 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
Вихід
Приклад 6
У цьому прикладі ми визначимо, як використовувати І та АБО, щоб включити кілька умов у вираз 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
Вихід
Параметри оператора If у сценаріях Bash
Оператор If містить багато варіантів для виконання конкретного завдання. Ці параметри можна використовувати для операцій з файлами, операціями з рядками тощо. Нижче наведено деякі з найбільш часто використовуваних параметрів:
Опції (оператори) | опис |
---|---|
! ВИРАЗ | Щоб перевірити, чи ВИРАЗ хибний. |
-n STRING | Щоб перевірити, чи довжина STRING більша за нуль. |
-z STRING | Щоб перевірити, чи довжина STRING дорівнює нулю (тобто він порожній) |
STRING1 == STRING2 | Щоб перевірити, чи STRING1 дорівнює STRING2. |
STRING1 != STRING2 | Щоб перевірити, чи STRING1 не дорівнює STRING2. |
ЦІЛЕ ЧИСЛО1 -eq ЦІЛЕ ЧИСЛО2 | Щоб перевірити, чи INTEGER1 чисельно дорівнює INTEGER2. |
ЦІЛЕ ЧИСЛО1 -gt ЦІЛЕ ЧИСЛО2 | Щоб перевірити, чи INTEGER1 чисельно більше ніж INTEGER2. |
ЦІЛЕ ЧИСЛО1 -lt ЦІЛЕ ЧИСЛО2 | Щоб перевірити, чи INTEGER1 числово менше ніж INTEGER2. |
-d ФАЙЛ | Щоб перевірити, чи існує FILE і чи є він каталогом. |
-e ФАЙЛ | Щоб перевірити, чи існує файл FILE. |
-r ФАЙЛ | Щоб перевірити, чи існує файл FILE і надано дозвіл на читання. |
-s ФАЙЛ | Щоб перевірити, чи існує ФАЙЛ і чи його розмір більше нуля (це означає, що він не порожній). |
-w ФАЙЛ | Щоб перевірити, чи існує файл FILE і чи надано дозвіл на запис. |
x ФАЙЛ | Щоб перевірити, чи існує FILE і чи надано дозвіл на виконання. |
Вкладений If
Ви можете застосувати скільки завгодно операторів if у вашому сценарії bash. Також можна використовувати оператор if всередині іншого оператора if. Він відомий як вкладений оператор If.
приклад
У цьому прикладі ми визначимо, чи є задане число більшим за 50 і чи є воно парним числом, використовуючи вкладений вираз if.
#!/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
Вихід
Якщо ми введемо значення аргументу як 100, тоді вихід виглядатиме так:
Висновок
У цій темі ми обговорювали, як можна використовувати умовне розгалуження в послідовному потоці виконання операторів за допомогою оператора bash if.