Заявы 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