Příkazy if-else ve skriptování bash jsou podobné jakémukoli jinému programovacímu jazyku; je to způsob, jakým program činí rozhodnutí.
V if-else
příkazy, o provedení bloku příkazů se rozhoduje na základě výsledku if
podmínka.
Syntaxe příkazu Bash If-Else
Syntaxe if-else
příkaz v bash je:
if [condition]
then
//if block code
else
// else block code
fi
Pokud se podmínka vyhodnotí jako true
, if
provede se blokový kód a pokud se podmínka vyhodnotí jako false
pak else
je proveden blokový kód.
Příkaz else a blok kódu else jsou nepovinné.
Musíme dokončit if
příkaz s fi
klíčové slovo.
Podmíněná srovnání
Výraz použitý podmíněným konstruktem se musí vyhodnotit buď jako true
nebo false
. Výraz může být jeden řetězec nebo proměnná.
- méně než - označeno:
$a -lt $b
nebo$a < $b
- větší než - označeno:
$a -gt $b
nebo$a > $b
- menší nebo rovno - označeno:
$a -le $b
nebo$a <= $b
- větší než nebo rovno - označeno:
$a -ge $b
nebo$a >= $b
- rovná se - označeno:
$a -eq $b
nebo$a == $b
- není rovno - označeno:
$a -ne $b
nebo$a != $b
Logické operátory
Výraz v rámci if
příkaz může být také logickou kombinací více srovnání.
Logické operátory jsou:
- logické a - označeno
$a AND $b
nebo$a && $b
se vyhodnotí jakotrue
když jsou obě proměnné nebo výroky pravdivé. - logické nebo - označeno
$a OR $b
nebo$a || $b
se vyhodnotí jakotrue
když je jedna z proměnných nebo tvrzení pravdivá.
Například:
#!/bin/bash
first_name="John"
last_name="Doe"
if [[ $first_name = "John" && $last_name = "Doe" ]]
then
echo 'hello John Doe'
fi
Příklad Bash if
if
příkaz je pouze jednoduchý podmíněný příkaz. Pokud je podmínka v rámci if[]
se vyhodnotí jako true
pak if
je proveden blok kódu.
Příklad:
#!/bin/bash
read -p "Enter a number: " mynumber
if [ $mynumber -gt 10 ]
then
echo "The number you entered is greater than 10"
fi
Poznámka:Pokud ve výše uvedeném příkladu zadáme číslo menší než 10, nic se nevytiskne. Příklad Bash if-else
Když výsledek if
podmínka je false
pak kód v else
blok se provede, pokud nějaký existuje.
Například:
#!/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
Příklad Bash if-elif-else
elif
(else if) se používá, když existuje více if
podmínky.
Například:
#!/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
Příklad Bash Nested if
Můžeme také mít vnořený if
prohlášení.
Například:
#!/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