Introduction to Bash Scripting 06 - A Simple "If" Statement
Obsah:
if
Statementif..else
Statementif..elif..else
Statement- Hnízdí-
if
prohlášení - Více podmínek
- Zkušební operátoři
- Závěr
Rozhodování je jedním z nejzákladnějších konceptů počítačového programování. Stejně jako v jakémkoli jiném programovacím jazyce,
if
,
if..else
,
if..elif..else
a vnořené,
if
příkazy v Bash lze použít ke spuštění kódu na základě určité podmínky.
V tomto tutoriálu vás seznámíme se základy příkazů Bash
if
a ukážeme vám, jak je používat ve skriptech shellu.
if
Statement
Bash,
if
mohou mít podmínění různé formy. Nejzákladnější příkaz
if
má následující podobu:
if TEST-COMMAND then STATEMENTS fi
Příkaz
if
začíná klíčovým slovem
if
následovaným podmíněným výrazem a klíčovým slovem
then
. Prohlášení končí klíčovým slovem
fi
.
Pokud se
TEST-COMMAND
vyhodnotí jako
True
,
STATEMENTS
bude proveden. Pokud
TEST-COMMAND
vrátí
False
, nic se nestane,
STATEMENTS
ignorovány.
Obecně je dobrým zvykem vždy odsadit kód a oddělit bloky kódu prázdnými řádky. Většina lidí se rozhodne použít odsazení 4 nebo 2 místa. Díky odsazení a prázdným řádkům je váš kód čitelnější a organizovanější.
Podívejme se na následující ukázkový skript, který kontroluje, zda je dané číslo větší než 10.
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." fi
Uložte kód do souboru a spusťte jej z příkazového řádku:
bash test.sh
Skript vás vyzve k zadání čísla. Pokud například zadáte 15,
test
příkaz se vyhodnotí jako
true
protože 15 je větší než 10 a bude proveden příkaz
echo
uvnitř klauzule
then
.
The variable is greater than 10.
if..else
Statement
Příkaz Bash
if..else
má následující podobu:
if TEST-COMMAND then STATEMENTS1 else STATEMENTS2 fi
Pokud se
TEST-COMMAND
vyhodnotí jako
True
, bude proveden
STATEMENTS1
. V opačném případě, pokud
TEST-COMMAND
vrátí hodnotu
False
, bude proveden
STATEMENTS2
. Ve výpisu můžete mít pouze jednu
else
klauzuli.
Přidáme klauzuli
else
k předchozímu příkladu skriptu:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." else echo "The variable is equal or less than 10." fi
if..elif..else
Statement
Prohlášení Bash
if..elif..else
má následující podobu:
if TEST-COMMAND1 then STATEMENTS1 elif TEST-COMMAND2 then STATEMENTS2 else STATEMENTS3 fi
Pokud se
TEST-COMMAND1
vyhodnotí jako
True
,
STATEMENTS1
bude proveden. Pokud se
TEST-COMMAND2
vyhodnotí jako
True
,
STATEMENTS2
bude proveden. Pokud žádný z testovacích příkazů nevyhodnotí
True
,
STATEMENTS2
se provede.
Ve výpisu můžete mít jednu nebo více
elif
doložek.
else
klauzule je volitelná.
Podmínky se vyhodnocují postupně. Jakmile se podmínka vrátí na
True
zbývající podmínky se neprovádějí a řízení programu se přesune na konec příkazů
if
.
Přidáme do předchozího skriptu klauzuli
elif
:
#!/bin/bash echo -n "Enter a number: " read VAR if] then echo "The variable is greater than 10." elif] then echo "The variable is equal to 10." else echo "The variable is less than 10." fi
Hnízdí-
if
prohlášení
Bash umožňuje vnořit příkazy
if
příkazech
if
. Můžete vložit více
if
do jiného
if
.
Následující skript vás vyzve k zadání tří čísel a vytiskne největší číslo z těchto tří čísel.
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] then if] then echo "$VAR1 is the largest number." else echo "$VAR3 is the largest number." fi else if] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi fi
Výstup bude vypadat takto:
Enter the first number: 4 Enter the second number: 7 Enter the third number: 2 7 is the largest number.
Namísto použití vnořených příkazů
if
je obvykle efektivnější použít příkaz case.
Více podmínek
Logické operátory
OR
a
AND
vám umožňují použít více příkazů v příkazech
if
.
Zde je další verze skriptu pro tisk největšího počtu ze tří čísel. V této verzi místo vnořených příkazů
if
použijeme logický operátor
AND
(
&&
).
#!/bin/bash echo -n "Enter the first number: " read VAR1 echo -n "Enter the second number: " read VAR2 echo -n "Enter the third number: " read VAR3 if] &&] then echo "$VAR1 is the largest number." elif] &&] then echo "$VAR2 is the largest number." else echo "$VAR3 is the largest number." fi
Zkušební operátoři
V Bash má příkaz
test
jednu z následujících forem syntaxe:
test EXPRESSION]
Chcete-li negovat testovací výraz, použijte logického operátora
NOT
(
!
). Při porovnávání řetězců vždy používejte jednoduché nebo dvojité uvozovky, abyste se vyhnuli problémům s rozdělením slov nebo globpingem.
Níže jsou uvedeny některé z nejčastěji používaných operátorů:
-
-n
VAR
- Pravda, pokud je délka VAR větší než nula.-z
VAR
- True, pokud je VAR prázdný.STRING1 = STRING2
- Pravda [STRING1 a STRING2 jsou si rovni.STRING1 != STRING2
- Pravda STRING1 a STRING2 nejsou stejná.INTEGER1 -eq INTEGER2
- True INTEGER1 a INTEGER2 jsou si rovni.INTEGER1 -gt INTEGER2
- True INTEGER1 je větší než INTEGER2.INTEGER1 -lt INTEGER2
- True INTEGER1 je menší než INTEGER2.INTEGER1 -ge INTEGER2
- True INTEGER1 je stejný nebo větší než INTEGER2.INTEGER1 -le INTEGER2
- True INTEGER1 je stejný nebo menší než INTEGER2.-h
FILE
- Pravda, pokud FILE existuje a je symbolickým odkazem.-r
FILE
- Pravda, pokud FILE existuje a je čitelný.-w
FILE
- Pravda, pokud FILE existuje a je zapisovatelný.-x
FILE
- Pravda, pokud FILE existuje a je spustitelný.-d
FILE
- Pravda, pokud FILE existuje a je adresářem.-e
FILE
- Pravda, pokud FILE existuje a je souborem, bez ohledu na typ (uzel, adresář, soket atd.).-f
FILE
- Pravda, pokud existuje SOUBOR a jedná se o běžný soubor (nikoli adresář nebo zařízení).
Závěr
if..else
if
,
if..else
a
if..elif..else
vám umožňují kontrolovat průběh spouštění skriptu Bash vyhodnocením daných podmínek.
Dohoda dává každé společnosti větší přístup k patentovým portfoliu druhé společnosti vztahy mezi těmito dvěma společnostmi začlenily patentované technologie do svých výrobků, uvedli ve svém prohlášení.

Společnosti uvedly, že společnost Microsoft bude platit od společnosti Pioneer poplatek, i když nebyly zveřejněny konkrétní finanční podmínky dohody.
Ve svém prohlášení prostřednictvím společnosti pro styk s veřejností , Microsoft uvedl, že zatímco pomáhá lidem nakupovat on-line je hlavním cílem společnosti Bing, je to jen jedna ze čtyř společností, která měla na mysli v červnu, kdy vydala vyhledávač, upravenou a rebrandovanou verzi svého Live Searchu. V červnovém vydání jsme se zaměřili na čtyři klíčové oblasti, kde lidé tráví čas při hledání, "uvedl Microsoft v e-mailovém prohlášení. "Tyto čtyři oblasti investic jsou cestování, mí

Společnost Microsoft se v té době pokoušela odlišit Bing od konkurenčního vyhledávače Google tím, že jej nazývá " rozhodování "zaměřený na pomoc lidem při přijímání lepších rozhodnutí online. Lidé, kteří používají tento web, poznamenali, že nákupní a cestovní sekce - které pomáhají lidem najít produkty, stejně jako letenky a další položky související s cestovním ruchem - zřejmě přinášejí některé z nejkomplexnějších výsledků vyhledávání.
Bash případ prohlášení

Příkazy case Bash se obvykle používají ke zjednodušení složitých podmínek, máte-li více různých možností. Použití příkazu case namísto vnořených příkazů if vám pomůže zlepšit čitelnost a snadnější údržbu vašich bash skriptů.