Операторы 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
оператор - это просто условный оператор. Если условие в пределах 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