logo

Bash Якщо

У цій темі ми розберемося, як користуватися оператори 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, то результат буде виглядати так:

Інструкція Bash If

Приклад 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 

Вихід

Інструкція Bash If

Приклад 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 

Вихід

Інструкція Bash If

Приклад 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 

Вихід

Інструкція Bash If

Приклад 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 

Вихід

Інструкція Bash If

Приклад 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 

Вихід

Інструкція Bash If

Параметри оператора 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

Висновок

У цій темі ми обговорювали, як можна використовувати умовне розгалуження в послідовному потоці виконання операторів за допомогою оператора bash if.