Ако-друго изјавите во баш-скриптите се слични на сите други програмски јазици; тоа е метод за програма за донесување одлуки.
Во if-else
изјави, за извршувањето на блок од изјавата се одлучува врз основа на резултатот од if
состојба
Синтаксата на if-else
изјава во баш е:
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