„If-else“ sakiniai „bash“ scenarijuose yra panašūs į bet kurias kitas programavimo kalbas; tai programos metodas priimti sprendimus.
Į if-else
teiginius, pareiškimo bloko vykdymas sprendžiamas remiantis if
rezultatu būklė.
if-else
Sintaksė sakinys bash yra:
if [condition] then
//if block code else // else block code fi
Jei būklė bus true
, tai if
blokinis kodas yra vykdomas ir jei sąlyga įvertinama kaip false
tada else
blokinis kodas vykdomas.
Turime baigti if
pareiškimas su fi
raktinis žodis.
Sąlyginio konstrukto naudojama išraiška turi būti įvertinta arba true
arba false
. Išraiška gali būti viena eilutė arba kintamasis.
$a -lt $b
arba $a < $b
$a -gt $b
arba $a > $b
$a -le $b
arba $a <= $b
$a -ge $b
arba $a >= $b
$a -eq $b
arba $a == $b
$a -ne $b
arba $a != $b
Išraiška if
viduje teiginys taip pat gali būti logiškas kelių palyginimų derinys.
Loginiai operatoriai yra:
$a AND $b
arba $a && $b
vertina iki true
kai teisingi abu kintamieji ar teiginiai.$a OR $b
arba $a || $b
vertina iki true
kai vienas iš kintamųjų ar teiginių yra teisingi.Pavyzdžiui:
#!/bin/bash first_name='John' last_name='Doe' if [[ $first_name = 'John' && $last_name = 'Doe' ]] then echo 'hello John Doe' fi
if
teiginys yra tik paprastas sąlyginis teiginys. Jei sąlyga if[]
vertina iki true
tada if
vykdomas kodo blokas.
Pavyzdys:
#!/bin/bash read -p 'Enter a number: ' mynumber if [ $mynumber -gt 10 ] then
echo 'The number you entered is greater than 10' fi
Pastaba:Ankstesniame pavyzdyje, jei įvesime skaičių, kuris yra mažesnis nei 10, niekas nebus spausdinamas.Kai if
rezultatas sąlyga yra false
tada kodas else
blokas vykdomas, jei yra vienas.
Pavyzdžiui:
#!/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
(else if) naudojamas, kai yra keli if
sąlygos.
Pavyzdžiui:
#!/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
Taip pat galime turėti lizdus if
pareiškimus.
Pavyzdžiui:
#!/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