Операторите if-else при скриптове на bash са подобни на други езици за програмиране; това е метод за програмата да взема решения.
В if-else
изявления, изпълнението на блок от изявления се решава въз основа на резултата от if
състояние.
Синтаксисът на if-else
изявление в bash е:
if [condition] then
//if block code else // else block code fi
Ако състоянието се изчислява на true
, if
блок код се изпълнява и ако условието се изчислява на false
тогава else
блок код се изпълнява.
Трябва да завършим if
изявление с fi
ключова дума.
Изразът, използван от условната конструкция, трябва да се изчисли или на true
или false
. Изразът може да бъде единичен низ или променлива.
$a -lt $b
или $a < $b
$a -gt $b
или $a > $b
$a -le $b
или $a <= $b
$a -ge $b
или $a >= $b
$a -eq $b
или $a == $b
$a -ne $b
или $a != $b
Изразът в if
израз може да бъде и логическа комбинация от множество сравнения.
Логическите оператори са:
$a AND $b
или $a && $b
оценява на true
когато и двете променливи или твърдения са верни.$a OR $b
или $a || $b
оценява на true
когато една от променливите или твърдения са верни.Например:
#!/bin/bash first_name='John' last_name='Doe' if [[ $first_name = 'John' && $last_name = 'Doe' ]] then echo 'hello John Doe' fi
if
statement е просто обикновено условно изявление. Ако състоянието в рамките на if[]
оценява на true
тогава if
кодовия блок се изпълнява.
Пример:
#!/bin/bash read -p 'Enter a number: ' mynumber if [ $mynumber -gt 10 ] then
echo 'The number you entered is greater than 10' fi
Забележка:В горния пример, ако въведем число, което е по-малко от 10, тогава нищо не се отпечатва.Когато резултатът от if
условието е false
след това кодът в else
блок се изпълнява, при условие че има такъв.
Например:
#!/bin/bash read -p 'Enter a number: ' mynumber if [ $mynumber -gt 10 ] then
echo 'The number you entered is greater than 10' else
echo 'The number you entered is less than 10' fi
elif
(иначе ако) се използва, когато има множество if
условия.
Например:
#!/bin/bash read -p 'Enter your exam grade: ' grade if [ $grade -ge 80 ] then
echo 'You got A' elif [ $grade -ge 70 ] then
echo 'You got B' elif [ $grade -ge 60 ] then
echo 'You got C' else
echo 'Fail' fi
Може също да имаме вложени if
изявления.
Например:
#!/bin/bash read -p 'Enter value of a :' a read -p 'Enter value of b :' b read -p 'Enter value of c :' c if [ $a -gt $b ] then
if [ $a -gt $c ]
then
echo 'a is greatest'
else
echo 'c is greatest'
fi else
if [ $b -gt $c ]
then
echo 'b is greatest'
else echo 'c is greatest'
fi fi