Условные утверждения | Сценарий оболочки

Опубликовано: 16 Февраля, 2022

Условные операторы: всего 5 условных операторов, которые можно использовать в программировании на bash.

  1. если заявление
  2. оператор if-else
  3. Оператор if..elif..else..fi (Else If)
  4. if..then..else..if..then..fi..fi .. (вложено, если)
  5. оператор переключения

Их описание с синтаксисом выглядит следующим образом:

if statement
This block will process if specified condition is true.
Syntax:

if [ expression ]
then
   statement
fi

if-else statement
If specified condition is not true in if part then else part will be execute.
Syntax

if [ expression ]
then
   statement1
else
   statement2
fi

оператор if..elif..else..fi (Else If)
Чтобы использовать несколько условий в одном блоке if-else, в оболочке используется ключевое слово elif. Если выражение1 истинно, оно выполняет операторы 1 и 2, и этот процесс продолжается. Если ни одно из условий не является истинным, обрабатывается другая часть.
Синтаксис

if [ expression1 ]
then
   statement1
   statement2
   .
   .
elif [ expression2 ]
then
   statement3
   statement4
   .
   .
else
   statement5
fi

if..then..else..if..then..fi..fi..(Nested if)
Nested if-else block can be used when, one condition is satisfies then it again checks another condition. In the syntax, if expression1 is false then it processes else part, and again expression2 will be check.
Syntax:

if [ expression1 ]
then
   statement1
   statement2
   .
else
   if [ expression2 ]
   then
      statement3
      .
   fi
fi

оператор переключения
Оператор case работает как оператор switch, если указанное значение совпадает с шаблоном, тогда он выполнит блок этого конкретного шаблона
Когда совпадение найдено, все связанные операторы, пока не будет выполнена двойная точка с запятой (;;).
Обращение будет прекращено при выполнении последней команды.
Если совпадений нет, статус выхода обращения равен нулю.

Syntax:

case  in
   Pattern 1) Statement 1;;
   Pattern n) Statement n;;
esac

Примеры программ

Example 1:
Implementing if statement

#Initializing two variables
a=10
b=20
  
#Check whether they are equal
if [ $a == $b ]
then
    echo "a is equal to b"
fi
  
#Check whether they are not equal
if [ $a != $b ]
then
    echo "a is not equal to b"
fi

Выход

 $ bash -f main.sh
а не равно б

Example 2:
Implementing if.else statement

#Initializing two variables
a=20
b=20
  
if [ $a == $b ]
then
    #If they are equal then print this
    echo "a is equal to b"
else
    #else print this
    echo "a is not equal to b"
fi

Выход

 $ bash -f main.sh
a равно b

Example 3:
Implementing switch statement

CARS="bmw"
  
#Pass the variable in string
case "$CARS" in
    #case 1
    "mercedes") echo "Headquarters - Affalterbach, Germany" ;;
      
    #case 2
    "audi") echo "Headquarters - Ingolstadt, Germany" ;;
      
    #case 3
    "bmw") echo "Headquarters - Chennai, Tamil Nadu, India" ;;
esac

Выход

 $ bash -f main.sh
Штаб-квартира - Ченнаи, Тамил Наду, Индия.

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