Оператори IF

Вступ до Bash Scripting

Alex Scriven

Data Scientist

Базовий оператор IF

Базовий оператор IF у Bash має таку структуру:

if [ CONDITION ]; then

# SOME CODE
else # SOME OTHER CODE
fi

Два поради:

  • Пробіли між дужками та елементами умови всередині (перший рядок)
  • Крапка з комою після закритої дужки ];
Вступ до Bash Scripting

IF і рядки

Можна виконати базове порівняння рядків в операторі IF:

x="Queen"

if [ $x == "King" ]; then
echo "$x is a King!"
else echo "$x is not a King!" fi
Queen is not a King!

Можна також використати != для «не дорівнює»

Вступ до Bash Scripting

Арифметичні IF (варіант 1)

Арифметичні IF можна записувати в подвійних дужках:

x=10

if (($x > 5)); then echo "$x is more than 5!" fi
10 is more than 5!
Вступ до Bash Scripting

Арифметичні IF (варіант 2)

Арифметичні IF також можна писати у квадратних дужках з арифметичними прапорцями замість (>, <, =, != тощо):

  • -eq — «дорівнює»
  • -ne — «не дорівнює»
  • -lt — «менше ніж»
  • -le — «менше або дорівнює»
  • -gt — «більше ніж»
  • -ge — «більше або дорівнює»
Вступ до Bash Scripting

Приклад арифметичного IF

Ось як відтворити попередній приклад у нотації з квадратними дужками:

x=10
if [ $x -gt 5 ]; then
    echo "$x is more than 5!"
fi
10 is more than 5!
Вступ до Bash Scripting

Інші умовні прапорці Bash

У Bash також є низка прапорців для файлів:

  • -e — файл існує
  • -s — файл існує й має розмір більше нуля
  • -r — файл існує й доступний для читання
  • -w — файл існує й доступний для запису

І багато інших:

Вступ до Bash Scripting

Використання AND і OR у Bash

 

Щоб поєднати умови (AND) або використати OR у Bash, застосовуйте такі символи:

  • && — AND
  • || — OR
Вступ до Bash Scripting

Кілька умов

У Bash можна ланцюжити умови так:

x=10
if [ $x -gt 5 ] && [ $x -lt 11 ]; then
    echo "$x is more than 5 and less than 11!"
fi

Або використати подвійну нотацію з квадратними дужками:

x=10
if [[ $x -gt 5 && $x -lt 11 ]]; then
    echo "$x is more than 5 and less than 11!"
fi
Вступ до Bash Scripting

IF і консольні програми

Умову можна будувати й на багатьох консольних програмах, без квадратних дужок.

Наприклад, якщо файл words.txt містить «Hello World!»:

if grep -q Hello words.txt; then
    echo "Hello is inside!"
fi
Hello is inside!
Вступ до Bash Scripting

IF з «оболонкою в оболонці»

Або можна викликати «оболонку в оболонці» у самій умові.

Перепишімо попередній приклад — результат буде той самий.

if $(grep -q Hello words.txt); then
    echo "Hello is inside!"
fi
Hello is inside!
Вступ до Bash Scripting

Давайте потренуємось!

Вступ до Bash Scripting

Preparing Video For Download...