Блог компанії 3v-Hosting

Оператор Bash "If": синтаксис, варіанти використання, команди та багато іншого!

Програмування

7 хв.


Оператор if в unix bash є наріжним каменем сценаріїв оболонки, дозволяючи вам автоматизувати завдання та приймати розумні рішення у ваших сценаріях. Незалежно від того, чи ви є досвідченим користувачем Bash або тільки починаєте, освоєння синтаксису сценаріїв - bash if дуже важливий для створення надійних і ефективних сценаріїв. Це докладний посібник дасть вам знання, які допоможуть вам використовувати можливості операторів if у ваших проектах з використанням Bash.

 

 

Синтаксис оператора Bash If: розбираємося у складових блоках.

 

Фундаментальна структура bash з умовою відповідає наступному шаблону:

    if [ умова ]; then
    # code to execute if condition is true
    fi

 


Давайте розберемо ключові компоненти:

    if: Це ключове слово вказує на початок оператора if.
    [умова]: у цьому розділі, у квадратних дужках, є умови bash, які ви хочете оцінити. Трохи пізніше ми заглибимося та розберемося що це можуть бути за умови!
    then: Це ключове слово означає початок блоку коду, який виконується лише у випадку, якщо команда if має значення true.
    fi: Це ключове слово сигналізує про закінчення оператора if.

 

Важливі моменти:

    - Хоча Bash не забезпечує суворого дотримання відступів, настійно рекомендується покращити читання та зручність обслуговування ваших сценаріїв за їх допомогою.
    - Квадратні дужки [] мають вирішальне значення для правильної оцінки укладених у них умов if у сценарії bash.
    - Bash дозволяє об'єднувати кілька операторів if у сценаріях bash один усередині іншого для побудови складнішої логіки, використовуючи ключові слова elif (else if) та else.

 

 


Як працюють оператори Bash?

 

За межами основ: освоєння варіацій операторів Bash If

 

Основний оператор if забезпечує міцну основу, але Bash пропонує різні способи налаштування його поведінки. Давайте розглянемо деякі поширені варіанти:


1. Else if (elif):

Пропозиція elif дозволяє перевіряти додаткові умови, якщо вихідна команда if дає значення false. Ви можете поєднати кілька операторів elif для прийняття складних рішень.

Приклад:

    if [ $age -lt 18 ]; then
      echo "You can't sell alcohol"
    elif [ $age -ge 18 -a $age -lt 65 ]; then
      echo "You can drink a glass"
    else
      echo "It's better not to drink, otherwise you might not get out of bed tomorrow"
    fi


Тут скрипт перевіряє вік та відображає відповідні повідомлення виходячи з умов.

 

 

2. Else:

Пропозиція else забезпечує стандартну дію, якщо жодна з попередніх умов у сценарії bash оператора if не є істинною.

Приклад:

    if [ -f List_of_gifts_from_Santa.txt ]; then
      echo "Congratulations! File exists."
    else
      echo "Oh, Sorry, File not found."
    fi

Цей сценарій перевіряє наявність файлу та відображає відповідні повідомлення.

 

 

3. Вкладені оператори if:

Ви можете вставляти оператори if до інших операторів if для складної логіки прийняття рішень. Однак правилом хорошого тону вважається невикористання безлічі рівнів вкладеності, так як це по-перше сильно знижує читаність коду, по-друге сильніше навантажує систему, а по-третє, при допущенні помилки в коді може взагалі викликати зависання системи у разі рекурсії.

 

 


Розкриття можливостей: вивчення випадків використання оператора Bash If

 

Оператор if відкриває широкий спектр можливостей у сценаріях оболонки. Ось кілька переконливих прикладів використання, що ілюструють його універсальність:

 


1. Автоматизація завдань керування файлами:

Уявіть сценарій, який автоматично створює резервні копії файлів в залежності від їх розміру. Командою if можна перевіряти розмір файлу і запускати дії резервного копіювання, якщо він перевищує певний поріг.

 


2. Умовні завдання системного адміністрування:

Системні адміністратори можуть використовувати оператори if для автоматизації таких завдань, як перевірка використання дискового простору та відправлення попереджень, якщо воно падає нижче за певну межу.

 


3. Перевірка введення користувача:

Приймаючи введення користувача у вашому сценарії, ви можете використовувати if для перевірки формату або діапазону введення і надання відповідного зворотного зв'язку користувачеві.

 


4. Створення інтерактивних меню:

Створення інтерактивних меню у сценаріях Bash можливе шляхом використання операторів if для інтерпретації вибору користувача та виконання відповідних дій.

 


5. Спрощення процесу виконання скрипту:

Оператори if оптимізують виконання сценарію, дозволяючи умовне розгалуження на основі певних критеріїв. Це підвищує ефективність сценаріїв та дозволяє уникнути непотрібного виконання коду.

 

 


Розкриття всього потенціалу: просунуті умовні оператори в Bash

 

Хоча базові оператори порівняння (наприклад, -eq для рівності та -gt для "більше") часто використовуються з умовами, Bash пропонує багатий набір розширених операторів для більш детального керування:

Строкові оператори. Такі оператори, як -z (рядок нульової довжини) і -n (рядок ненульової довжини), знадобляться для маніпуляцій з рядками.
Оператори перевірки файлів. Такі оператори, як -f (файл) та -d (каталог), полегшують перевірку типів та існування файлів.
Логічні оператори: такі оператори, як && (І) та || (OR) може комбінувати декілька умов if у сценарії bash для складних обчислень.

 

Приклад:


    if [[ -f file.txt && $filesize -gt 1048576 ]]; then
      echo "Large file found: file.txt"
      # compress or archive the file
    fi

Цей сценарій перевіряє існування файлу (-f) та його розмір (-gt) перед виконанням дії.


Освоївши ці просунуті оператори, ви зможете створювати гнучку та надійну логіку сценаріїв на Bash.

 

 

Приборкання підстановочних знаків: освоєння сценарію оболонки if з підстановними знаками

 

Підстановочні знаки, такі як * (відповідає будь-якій кількості символів) та ? (відповідає одному символу) додає ще один рівень гнучкості до операторів if сценарію оболонки.

Приклад:


    if [[ -f *.log ]]; then
      echo "Log files found. Processing..."
      # process all log files in the directory
    fi


Цей сценарій перевіряє наявність файлів, що закінчуються на .log, з використанням знака підстановки *.

Однак використовуйте знаки підстановки розумно, щоб уникнути непередбачених наслідків, оскільки вони потенційно можуть відповідати несподіваним, наприклад системним файлам.

 


 

Інші статті з адміністрування Linux:


    - Як дізнатися вашу IP-адресу в Linux різними способами

    - Як віддалено підключитися до MySQL

    - Коротка шпаргалка Linux для нових користувачів хостингу: від логіну на сервер до налаштування веб-сервера.

    - Короткий посібник із встановлення та налаштування WordPress на Linux VPS

 


 


За межами сценарію: практичне застосування і не лише

 

Використання оператора if у Bash не обмежується виключно сценаріями. Він є фундаментальною концепцією у різних мовах програмування та середовищах сценаріїв. Розуміючи його основні принципи, ви отримуєте цінну основу більш глибокого вивчення основ програмування.

 

 


Тож, чи готові ви застосовувати сценарії Bash з використанням операторів If?

 

Це докладний посібник дало вам знання про те, як використовувати можливості умовних операторів if. Від базового синтаксису до розширених варіантів та варіантів використання з операторами - тепер ви добре підготовлені до ефективного включення умов if у сценарії Bash.

Пам'ятайте, що практика веде до досконалості! Поекспериментуйте з різними сценаріями та досліджуйте величезний потенціал операторів if, щоб покращити свої навички написання сценаріїв Bash. У міру зростання вашої майстерності ви відкриєте світ можливостей автоматизації, оптимізуючи завдання та підвищуючи свою ефективність.