50% sleva všechny plány, omezený čas. Začátek v $2.48/mo
Zbývá 10 min
Servery a OS

Příkaz Bash If: Syntaxe, variace, případy použití, příkazy a další!

Pius Bodenmann By Pius Bodenmann 10 min čtení Aktualizováno 28. ledna 2024
bash skriptování

Ve skriptování shellu hrají příkazy Bash if klíčovou roli tím, že umožňují programátorům vytvářet podmíněné cesty provádění založené na různých situacích. V zásadě, pokud nám příkazy umožňují činit rozhodnutí v rámci Bash skriptů, s ohledem na faktory, jako jsou výsledky testů, vstup uživatele nebo stavy systému. Je to jako způsob, jak procházet různými možnostmi.

Při použití skriptování Bash sleduje příkaz if specifickou strukturu. Obvykle to začíná „if“, za nímž následuje podmínka, která vyžaduje vyhodnocení, “pak” a jeden nebo více příkazů, které se mají provést, pokud podmínka platí.

Aby byly věci flexibilnější, může příkaz if obsahovat také volitelný „elif“ (else if) příkaz, který přichází do hry, když je počáteční podmínka nepravdivá. Umožňuje nám otestovat další podmínku a podle toho postupovat. Příkaz if může mít navíc volitelný příkaz „else“, který se provede, pokud neplatí žádná z podmínek.

Kombinací příkazů if s dalšími příkazy Bash a funkcemi skriptování shellu mohou programátoři vytvářet pokročilé skripty schopné automatizovat složité úkoly a procesy. Zůstaňte kolem, abyste zjistili více o příkazu Bash if, včetně jeho syntaxe, případů použití a příkladů!

Syntaxe příkazu Bash If

Syntaxe Bash odkazuje na pravidla, která řídí strukturu a gramatiku příkazů a skriptů napsaných v jazyce shellu Bash. Syntaxe Bash zahrnuje řadu konstrukcí a prvků, jako například:

  • Příkazy: Jedná se o jednotlivé spustitelné programy nebo vestavěné moduly shellu, které se používají k provádění konkrétních úkolů. Většinu času, kdy se zabýváte programováním Bash, strávíte s těmito krásnými řádky.
  • Argumenty: Toto jsou hodnoty, které jsou předávány příkazům k určení voleb, parametrů nebo vstupních dat. Představte si je jako podmínky, které jsou nastaveny pro příkaz k určení jeho parametrů provádění.
  • Proměnné: Jedná se o symboly, které představují hodnoty, které lze přiřadit, manipulovat nebo použít ve výrazech. Běžně se používají k určení hodnot, se kterými se musí příkazy i argumenty vypořádat.
  • Přesměrování: Toto je proces přesměrování vstupu, výstupu nebo chyb do nebo ze souborů, zařízení nebo jiných příkazů. Bez nich je velká šance, že vaše příkazy zacílí na nesprávný cíl a zkazí váš kód.
  • Trubky: Toto je mechanismus pro připojení výstupu jednoho příkazu ke vstupu jiného příkazu. Ty se obecně používají k provádění pokročilých podmíněných příkazových řádků ve velkých programech a k vytváření vzájemně propojených příkazových řádků.
  • Kontrolní struktury: Jedná se o konstrukce, které řídí tok provádění příkazů, jako jsou smyčky, podmínky a funkce. Pochopení řídicí struktury je klíčem k vytváření nových příkazových řádků a dává vašemu kódu další úroveň hloubky.
  • Komentáře: Toto jsou anotace, které shell ignoruje a používají se k dokumentaci kódu nebo poskytování vysvětlení. To jsou důležité referenční body při provádění analýzy a ladění, zejména ve skupinových projektech.

Syntaxe bash musí být napsána správně, aby shell interpretoval a vykonával příkazy. Chyby syntaxe mohou způsobit, že shell vytvoří chybové zprávy nebo neočekávané chování.

Zde je příkaz Bash if v akci:

if condition
then
   command1
   command2
   ...
   commandN
elif condition2
then
   commandA
   commandB
   ...
   commandC
else
   commandX
   commandY
   ...
   commandZ
fi

V tomto případě se „podmínka“ týká testu, který dává výsledek buď pravdivý, nebo nepravdivý. Když je podmínka pravdivá, provedou se následující příkazy zadané za klíčovým slovem „then“. Nyní řekněme, že místo toho chceme vyhodnotit další podmínku. K tomu můžeme použít klíčové slovo „elif“. Poskytuje způsob, jak zvážit jinou možnost. Nyní, pokud neplatí žádná z podmínek, přijdou do hry příkazy zadané za klíčovým slovem „else“. Je to jako záložní plán. Nakonec k označení závěru příkazu if použijeme klíčové slovo „if“.

Jak fungují příkazy Bash?

Pokud jde o skriptování Bash, příkaz if se stává docela užitečným při řízení toku skriptu na základě výsledku podmíněného testu. Jeho účel se točí kolem vyhodnocení podmínky a pokud se zjistí, že je pravdivá, provede se specifická sada příkazů.

Nyní se podívejme na to, jak se věci obvykle vyvíjejí, když do hry ve skriptu Bash vstoupí příkaz if. Skript chvíli trvá, než vyhodnotí podmínku uvedenou v příkazu if. Pokud se podmínka ukáže jako pravdivá, příkazy zařazené do bloku „pak“ najdou svůj tah k provedení.

Pokud je však podmínka nepravdivá, skript pokračuje ve vyhodnocení dalších podmínek elif. Pokud platí některá z těchto podmínek, příkazy příslušného bloku elif se zvýší, aby se provedly. V případech, kdy se žádná z podmínek uvedených v příkazech if a elif nezdá být pravdivá, skript to potvrdí a pokračuje ve vykonávání příkazů zadaných v bloku else (pokud byl zahrnut blok else).

Příkaz if v podstatě slouží jako prostředek k usnadnění rozhodování v rámci skriptu, který mu umožňuje procházet různými cestami provádění v závislosti na výsledku testu. Samotný test může vzít v úvahu různé faktory, jako je výsledek příkazu nebo hodnota přiřazená proměnné.

Bash If Statement Exemplied

Nyní pojďme opustit základní teorii a podívejme se, jak lze Bash if použít v aktivním vývoji kódování. Zde je příklad, který ukazuje, jak funguje příkaz Bash if:

#!/bin/bash
# set a variable
x=5
# evaluate the variable
if [ $x -gt 4 ]
then
  echo "x is greater than 4."
else
  echo "x is less than or equal to 4."
fi

V tomto příkladu příkaz if vyhodnocuje hodnotu proměnné x. Pokud je x větší než 4, skript provede příkaz pro tisk „x je větší než 4“. Pokud je x menší nebo rovno 4, skript provede příkaz pro tisk „x je menší nebo rovno 4“.

Nyní, když dobře rozumíte samotnému příkazu Bash If a jeho fungování, pojďme se ponořit hlouběji do variant a souvisejících příkazů a dozvědět se více o příkazech Basic If, Nested If, Bash If Else, If Elif Else a Case Statement jeden po druhém.

Základní příkazy If

Začněme základním příkazem bash if. Příkaz if v Bash zkontroluje, zda je podmínka pravdivá, a podle toho provede blok souvisejících kódů. Zde je syntaxe:

if [ condition ]
then
  commands
fi

V případě, který zde máme, skript vyhodnotí podmínku, a pokud platí, provedou se zadané příkazy. Pokud je podmínka nepravdivá, skript se přesune na další příkaz, aniž by provedl blok v sekci „then“.

Vnořené příkazy If

Vnořený příkaz if, jak naznačuje název kreativy, je příkaz if, který je „vnořen“ do jiného příkazu if. Tato vnořená struktura umožňuje složitější testy a analýzy v rámci skriptu. Zde je příklad vnořeného příkazu if:

if [ condition1 ]
then
  if [ condition2 ]
  then
    commands
  fi
fi

V příkazech vidíte, že skript vyhodnocuje podmínku1 jako první krok. Pokud je podmínka1 ověřena jako pravdivá, vyhodnotí se podmínka2. Pokud je podmínka 2 také pravdivá, skript provede potřebné příkazy.

Bash If Else prohlášení

Příkaz Bash if else vám umožňuje rozhodovat se ve vašem skriptu na základě toho, zda je podmínka pravdivá nebo nepravdivá, což umožňuje pokročilejší provádění situačního kódu. Takto vypadá struktura:

if [ condition ]
then
  commands1
else
  commands2
fi

Tato konstrukce zajišťuje, že pokud podmínka platí, váš skript rychle provede „příkazy1“. Pokud je však podmínka nepravdivá, přepne se na provedení „příkazy2“.

If Elif Else Prohlášení

Někdy je potřeba zvážit více podmínek a jejich příslušné výsledky. Příkaz if elif else vám přesně toto umožňuje. Dodržujte následující syntaxi:

if [ condition1 ]
then
  commands1
elif [ condition2 ]
then
  commands2
else
  commands3
fi

Zde váš skript nejprve vyhodnotí podmínku1. Pokud je ověřeno, že je pravdivé; bude rychle provádět příkazy1. Pokud je však podmínka1 nepravdivá, váš skript přejde k vyhodnocení podmínky2. Pokud platí podmínka2, pokračuje se ve vykonávání příkazů2. A pokud se ukáže, že podmínka1 i podmínka2 jsou nepravdivé, váš skript přejde na alternativu, která provádí příkazy3.

Případová prohlášení

V Bash máte příkaz case, který funguje podobně jako příkaz switch nalezený v jiných programovacích jazycích. Poskytuje způsob, jak provádět různé sady příkazů na základě hodnoty proměnné. Podívejte se na strukturu:

case expression in
  pattern1)
    commands1;;
  pattern2)
    commands2;;
  pattern3)
    commands3;;
*)
default commands;;
esac

Zde skript vyhodnotí proměnnou výrazu a porovná ji s různými vzory. Když je nalezena shoda, je provedena odpovídající sada příkazů. Pokud však není nalezena žádná shoda, výchozí příkazy se provedou bez problémů. Vzor hvězdičky (*) funguje jako zástupný znak, který odpovídá všemu, co nebylo zakryto.

Bash logické operátory

Další hlavní součástí machinací s příkazy Bash if je logický operátor. Tyto operátory vám umožňují sloučit více podmínek, což vám umožní rozhodovat se na základě pravdivosti nebo nepravdivosti těchto kombinovaných podmínek. Bash obsahuje tři primární logické operátory pro použití v příkazech if. Zde jsou příklady tří hlavních typů příkazů logického operátora.

  • Bash AND (&&):
if [ $age -ge 18 ] && [ "$citizen" == "yes" ]; then
  echo "You meet the criteria for voting."
fi
  • Logické nebo (II):
if [ "$status" == "active" ] || [ "$role" == "admin" ]; then
  echo "Access granted."
fi
  • Nerovná se:
if(( ! $a == "true" )) then 
  echo "a" was initially false. 
else
  echo "a" was initially true. 
fi

Závěr

V tomto blogovém příspěvku jsme poskytli úvodní příručku k příkazům Bash if a jak je používat. Také jsme diskutovali o tom, jak mohou udělat váš kód mnohem přehlednějším a funkčnějším. Efektivním používáním těchto podmíněných příkazů můžete vytvářet výkonné skripty, které jsou schopné zpracovávat složité úkoly a rozhodování.

Jste ve světě Linuxu nováčkem? Nechte nás být vaším průvodcem na této vzrušující cestě! Náš Linux VPS je perfektním výchozím bodem pro začátečníky, nabízí jednoduchost bez obětování výkonu. S uživatelsky přívětivým rozhraním a odbornou podporou zjistíte, že využití možností linuxového serveru bude snazší než kdy dříve. Ať už zakládáte web, testujete aplikace nebo prozkoumáváte obrovský svět Linuxu, naše Linux VPS poskytuje bezpečné a bezproblémové prostředí. Udělejte své první kroky do linuxového vesmíru s jistotou – vyzkoušejte naše možnosti Linux VPS ještě dnes a vydejte se na své linuxové dobrodružství!

Linux VPS hosting

Získejte ekonomický nebo prémiový Linux VPS pro hostování vašeho webu nebo vzdálené plochy za nejnižší cenu. VPS běžící na Linux KVM pro vyšší efektivitu a práci na výkonném hardwaru s úložištěm NVMe SSD pro vyšší rychlost.

Přečtěte si více

FAQ

Mohu použít logické operátory v příkazech Bash if?

Ano, můžete použít logické operátory jako např ‚&‘ a ‚||‘ v příkazech Bash if. Například, if [ $var -gt 0 ] && [ $var -lt 10 ]; pak… spustí blok kódu if $var je větší než 0 a menší než 10.

Mohu použít více podmínek v jednom příkazu if?

Ano, můžete použít Bash if více podmínek v jediném příkazu if pomocí logických operátorů, jako je např -a (A) nebo -o (NEBO) je spojit. Například, if [ $var -gt 0 -a $var -lt 10 ]; pak… spustí blok kódu if $var je větší než 0 A menší než 10.

Mohu použít substituci příkazů v příkazech Bash if?

Ano, můžete použít náhradu příkazu v příkazech Bash if uzavřením příkazu do $() nebo backticks (). Například, if [ $(whoami) == “kořen” ]; pak… spustí blok kódu, pokud je aktuální uživatel root.

[[ vs [ vs ( vs (: Jaký je rozdíl mezi těmito operátory Bash?

Stručně řečeno, [[ se používá pro pokročilé podmíněné testování. [ se používá pro základní podmíněné testování. ( se používá pro seskupování podshel a provádění příkazů. (( se používá pro aritmetické operace.

 

Podíl

Více z blogu

Pokračujte ve čtení.

Nejlepší aplikace s vlastním hostováním, které můžete spouštět s Cosmos Cloudem na úvodním obrázku s panely aplikací kolem řídicího panelu Cosmos.
Servery a OS

Nejlepší samoobslužné aplikace, které můžete provozovat s Cosmos Cloud: Soubory, média, hesla, automatizace a další!

Možná jste si nastavili Cosmos Cloud a nyní chcete vidět, jaké aplikace s ním dobře ladí, nebo jste se možná ještě ani nerozhodli pro Cosmos a chcete jen zjistit, jak dobře se hodí k vaší práci

Nick SilverNick Silver 16 minut čtení
Kryt Porttainer vs Cosmos Cloud pro správu Docker Apps s hybridním schématem nastavení a neonovými operacemi vs přístupovými bloky.
Servery a OS

Portainer vs Cosmos Cloud: Nejlepší řešení pro správu aplikací Docker

Pokud již znáte Docker a chcete pouze čistší způsob, jak provozovat rostoucí zásobník aplikací, zde je krátká odpověď na Porttainer vs Cosmos Cloud. Porttainer je silnější volbou pro direc

Nick SilverNick Silver 14 minut čtení
Hlavní grafika Cosmos Cloud vs CasaOS vs Umbrel ukazuje tři samostatně hostované cesty uvnitř jednoho abstraktního světa cloudové sítě.
Servery a OS

Cosmos Cloud vs CasaOS vs Umbrel: Která platforma s vlastním hostitelem vyhovuje vašemu nastavení?

Krátká odpověď zní, že CasaOS je stále tím nejjednodušším místem, kde začít, Umbrel má nejčistší kurátorský pocit a Cosmos Cloud dává větší smysl, jakmile budete chtít přísnější kontrolu nad doménou

Nick SilverNick Silver 11 minut čtení

Jste připraveni k nasazení? Od 2,48 $ měsíčně.

Nezávislý cloud, od roku 2008. AMD EPYC, NVMe, 40 Gbps. 14denní vrácení peněz.