Условные утверждения | Сценарий оболочки
Условные операторы: всего 5 условных операторов, которые можно использовать в программировании на bash.
- если заявление
- оператор if-else
- Оператор if..elif..else..fi (Else If)
- if..then..else..if..then..fi..fi .. (вложено, если)
- оператор переключения
Их описание с синтаксисом выглядит следующим образом:
if statement
This block will process if specified condition is true.
Syntax:
if [ expression ]
then
statement
fiif-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
fiif..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 variablesa=10b=20 #Check whether they are equalif [ $a == $b ]then echo "a is equal to b"fi #Check whether they are not equalif [ $a != $b ]then echo "a is not equal to b"fi |
Выход
$ bash -f main.sh а не равно б
Example 2:
Implementing if.else statement
#Initializing two variablesa=20b=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 stringcase "$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 Штаб-квартира - Ченнаи, Тамил Наду, Индия.
Примечание: сценарии оболочки - это язык с учетом регистра, что означает, что при написании сценариев необходимо соблюдать правильный синтаксис.