Поиск по сайту:

Как использовать if-else в сценариях оболочки?


Продолжая наше предыдущее руководство по массивам в сценариях оболочки, давайте разберемся, как мы можем использовать if-else в сценариях оболочки.

Условное программирование — важная часть любого языка программирования, потому что выполнение каждого отдельного оператора в нашей программе чаще всего нежелательно.

И нам нужен способ условного выполнения операторов. Оператор if-else в сценариях оболочки служит именно этой ситуации.

Условия в сценариях оболочки

Одной из наиболее важных частей условного программирования являются операторы if-else. Оператор if-else позволяет вам выполнять итеративные условные операторы в вашем коде.

Мы используем if-else в сценариях оболочки, когда хотим оценить условие, а затем решить выполнить один набор между двумя или более наборами операторов, используя результат.

По сути, это позволяет нам выбрать ответ на результат, который оценивается нашим условным выражением.

Как работает if-else в сценариях оболочки?

Теперь мы знаем, что такое функция if-else и почему она важна для любого программиста, независимо от его предметной области. Чтобы понять if-else в сценариях оболочки, нам нужно разобрать работу условной функции.

Давайте посмотрим на синтаксис блока условия if-else.

if [condition]
then
   statement1
else
   statement2
fi

Здесь у нас есть четыре ключевых слова, а именно if, then, else и fi.

  1. За ключевым словом if следует условие.
  2. Это условие оценивается, чтобы решить, какой оператор будет выполняться процессором.
  3. Если условие оценивается как ИСТИНА, процессор выполнит оператор(ы), за которыми следует ключевое слово затем. В синтаксисе он упоминается как оператор1.
  4. В случае, когда условие оценивается как FALSE, процессор выполнит оператор(ы), за которыми следует ключевое слово else. В синтаксисе функции это обозначается как оператор2.

Важно иметь в виду, что, как и программирование на C, сценарии оболочки чувствительны к регистру. Следовательно, вам нужно быть осторожным при использовании ключевых слов в вашем коде.

Как использовать if-else в сценарии оболочки

Легко увидеть синтаксис функции и поверить, что знаешь, как ее использовать. Но всегда лучше понять функцию на примерах, потому что они помогают понять роль, которую играют различные аспекты функции.

Вот несколько полезных примеров if-else в сценариях оболочки, чтобы дать вам лучшее представление о том, как использовать этот инструмент.

Command Description
&& Logical AND
$0 Argument 0 i.e. the command that’s used to run the script
$1 First argument (change number to access further arguments)
-eq Equality check
-ne Inequality check
-lt Less Than
-le Less Than or Equal
-gt Greater Than
-ge Greater Than or Equal

1. Использование if-else для проверки равенства двух чисел

Когда вы пытаетесь понять работу такой функции, как if-else, в сценарии оболочки, лучше начать с простого. Здесь мы инициализируем две переменные a и b, а затем используем функцию if-else, чтобы проверить, равны ли две переменные. Сценарий bash для этой задачи должен выглядеть следующим образом.

#!/bin/bash
m=1
n=2

if [ $n -eq $m ]
then
        echo "Both variables are the same"
else
        echo "Both variables are different"
fi

Выход:

Both variables are different

2. Использование if-else для сравнения двух значений

Более распространенное использование if-else в сценариях оболочки для сравнения двух значений. Сравнение переменной с другой переменной или фиксированным значением помогает в самых разных случаях программистам всех мастей.

Ради этого примера мы будем инициализировать две переменные и использовать функцию if-else, чтобы найти переменную, которая больше другой.

#!/bin/bash
a=2
b=7
if [ $a -ge $b ]
then
  echo "The variable 'a' is greater than the variable 'b'."
else
  echo "The variable 'b' is greater than the variable 'a'."
fi

Выход:

The variable 'b' is greater than the variable 'a'.

3. Использование if-else для проверки четности числа

Иногда мы сталкиваемся с ситуациями, когда нам нужно иметь дело с четными и нечетными числами и различать их. Это можно сделать с помощью if-else в сценариях оболочки, если мы воспользуемся помощью оператора модуля.

Оператор модуля делит число на делитель и возвращает остаток.

Поскольку мы знаем, что все четные числа кратны 2, мы можем использовать следующий сценарий оболочки, чтобы проверить, является ли число четным или нечетным.

#!/bin/bash
n=10
if [ $((n%2))==0 ]
then
  echo "The number is even."
else
  echo "The number is odd."
fi

Выход:

The number is even

Как видите, мы заключили часть условия в двойные скобки. Это потому, что нам нужно, чтобы операция по модулю выполнялась до проверки условия.

Кроме того, заключение в двойные скобки запускает операторы в стиле C, что позволяет обрабатывать некоторые команды в стиле C в сценариях bash.

4. Использование if-else в качестве простой подсказки пароля

Функция if-else известна своей универсальностью и диапазоном применения. В этом примере мы будем использовать if-else в сценарии оболочки, чтобы создать интерфейс для запроса пароля.

Для этого мы попросим пользователя ввести пароль и сохранить его в переменной pass.

Если он соответствует предварительно определенному паролю, который в этом примере является «паролем», пользователь получит вывод как -\«Пароль правильный».

В противном случае сценарий оболочки сообщит пользователю, что пароль неверен, и попросит повторить попытку.

#!/bin/bash
echo "Enter password"
read pass
if [ $pass="password" ]
then
  echo "The password is correct."
else
  echo "The password is incorrect, try again."
fi

Заключение

Функция if-else в сценарии оболочки является важным преимуществом для программистов оболочки. Это лучший инструмент для использования, когда вам нужно выполнить набор операторов на основе заранее определенных условий.

Блок if-else — одна из самых важных частей условного программирования. Регулируя выполнение определенных операторов, вы не только делаете свой код более эффективным, но и высвобождаете драгоценное время, которое процессор мог потратить впустую на выполнение операторов, которые не нужны для конкретного случая.

Мы надеемся, что это руководство помогло вам понять, как использовать функцию if-else. Если у вас есть какие-либо вопросы, отзывы или предложения, не стесняйтесь обращаться к нам в комментариях ниже.