Opakování příkazů ve skriptování Shell: Existují celkem 3 smyčkové příkazy, které lze použít v programování bash
Obsah
- Příkaz `while` ve skriptu Shell v Linuxu
- Příkaz `for` ve skriptu Shell v Linuxu
- příkaz `until` v Shell Script v Linuxu
- Příklady cyklických příkazů
Ke změně toku příkazů smyčky se používají dva příkazy,
- přestávka
- pokračovat
Jejich popis a syntaxe jsou následující:
Příkaz `while` ve skriptu Shell v Linuxu
Zde je příkaz vyhodnocen a na základě výsledné smyčky bude vykonán, pokud je příkaz zvýšen na false, smyčka bude ukončena že.
#/bin/bash while do done>
Implementace smyčky `While` ve skriptu Shell.
Nejprve vytvoříme soubor pomocí textového editoru v Linuxu. V tomto případě používáme `vim`editor.
vim looping.sh>
Looping.sh můžete nahradit požadovaným názvem.
Potom uděláme náš skript spustitelný pomocí příkazu `chmod` v Linuxu.
chmod +x looping.sh>
#/bin/bash
a=0
# Je menší než operátor
# Opakujte smyčku, dokud nebude méně než 10
zatímco [ $a -lt 10]
dělat
# Vytiskněte hodnoty
echo $a
# zvýšení hodnoty
a=`výraz $a + 1`
Hotovo
Výstup:

Zatímco Loop v Linuxu
Vysvětlení:
-
#/bin/bash>: Určuje, že skript by měl být interpretován pomocí prostředí Bash. -
a=0>: Inicializuje proměnnoua>s hodnotou 0. -
while [ $a -lt 10 ]>: Spustí smyčku while, která pokračuje tak dlouho, dokud je hodnotaa>je méně než 10. -
do>: Označuje začátek těla smyčky. -
echo $a>: Vytiskne aktuální hodnotua>konzole. -
a=>expr $a + 1 : Zvyšuje hodnotua>od 1. Theexpr>příkaz se používá pro aritmetické výrazy. -
done>: Označuje konec smyčky.
Příkaz `for` ve skriptu Shell v Linuxu
Smyčka for pracuje se seznamy položek. Opakuje sadu příkazů pro každou položku v seznamu.
Zde var je název proměnné a slovo1 až slovoN jsou sekvence znaků oddělené mezerami (slovy). Při každém spuštění cyklu for se hodnota proměnné var nastaví na další slovo v seznamu slov, slovo1 až slovoN.
Syntax:
instance java
#/bin/bash for in do done>
Implementace `for` Loop s příkazem `break` ve skriptu Shell.
Nejprve vytvoříme soubor pomocí textového editoru v Linuxu. V tomto případě používáme `vim`editor.
vim for.sh>
For.sh můžete nahradit požadovaným názvem.
Potom uděláme náš skript spustitelný pomocí příkazu `chmod` v Linuxu.
chmod +x for.sh>
#/bin/bash
#Začátek cyklu for
pro a v 1 2 3 4 5 6 7 8 9 10
dělat# pokud a je rovno 5, přerušte smyčku
if [ $a == 5 ]
pak
přestávka
být# Vytiskněte hodnotu
echo Iterace ne $a
Hotovo
Výstup:

Break statement in for Loop v linuxu
Vysvětlení:
#/bin/bash>: Určuje, že skript by měl být interpretován pomocí prostředí Bash.for a in 1 2 3 4 5 6 7 8 9 10>: Inicializuje cyklus for, který iteruje přes hodnoty 1 až 10, přičemž každou hodnotu přiřadí proměnnéa>v každé iteraci.do>: Označuje začátek těla smyčky.if [ $a == 5 ]>: Zkontroluje, zda je aktuální hodnotaa>se rovná 5.then>: Označuje začátek podmíněného bloku, který se má provést, pokud je podmínka pravdivá.break>: Opustí smyčku, pokud je podmínka pravdivá.
fi>: Označuje konec podmíněného bloku.
echo 'Iteration no $a'>: Vytiskne zprávu s číslem aktuální iterace.done>: Označuje konec smyčky.
Skript nastaví cyklus for, který iteruje přes hodnoty 1 až 10. Během každé iterace zkontroluje, zda hodnotaa>se rovná 5. Pokud ano, smyčka se ukončí pomocíbreak>prohlášení. V opačném případě vytiskne zprávu s číslem aktuální iterace. Cyklus pokračuje, dokud nedokončí všechny iterace nebo dokud nenarazí na příkaz break.
Implementace `for` Loop s příkazem `continue` ve skriptu Shell.
Nejprve vytvoříme soubor pomocí textového editoru v Linuxu. V tomto případě používáme `vim`editor.
vim for_continue.sh>
For_continue.sh můžete nahradit požadovaným názvem.
stojící
Potom uděláme náš skript spustitelný pomocí příkazu `chmod` v Linuxu.
chmod +x for_continue.sh>
#/bin/bash
pro a v 1 2 3 4 5 6 7 8 9 10
dělat# pokud a = 5, pak pokračujte ve smyčce a
# nepřecházejte na řádek 8if [ $a == 5 ]
pak
pokračovat
být
echo Iterace ne $a
Hotovo
Výstup:

pokračovat příkazem ve smyčce for v Linuxu
Vysvětlení:
-
#/bin/bash>: Určuje, že skript by měl být interpretován pomocí prostředí Bash. -
for a in 1 2 3 4 5 6 7 8 9 10>: Inicializuje cyklus for, který iteruje přes hodnoty 1 až 10, přičemž každou hodnotu přiřadí proměnnéa>v každé iteraci. -
do>: Označuje začátek těla smyčky. -
if [ $a == 5 ]>: Zkontroluje, zda je aktuální hodnotaa>se rovná 5.-
then>: Označuje začátek podmíněného bloku, který se má provést, pokud je podmínka pravdivá.-
continue>: Přeskočí zbytek těla smyčky a přejde k další iteraci, pokud je podmínka pravdivá.
-
-
fi>: Označuje konec podmíněného bloku.
-
-
echo 'Iteration no $a'>: Vytiskne zprávu s číslem aktuální iterace. Tento řádek je přeskočen, pokuda>se rovná 5 kvůlicontinue>prohlášení. -
done>: Označuje konec smyčky.
Skript nastaví cyklus for, který iteruje přes hodnoty 1 až 10. Během každé iterace zkontroluje, zda hodnotaa>je roven 5. Pokud ano, cyklus pokračuje do další iterace bez provedení zbývajících příkazů v těle cyklu. V opačném případě vytiskne zprávu s číslem aktuální iterace. Cyklus pokračuje, dokud nedokončí všechny iterace.
příkaz `until` v Shell Script v Linuxu
Cyklus till se provede tolikrát, kolikrát je podmínka/příkaz vyhodnocen jako nepravda. Cyklus skončí, když se podmínka/příkaz stane pravdivým.
Syntax:
#/bin/bash until do done>
Implementace `until` Loop v Shell Scrip
Nejprve vytvoříme soubor pomocí textového editoru v Linuxu. V tomto případě používáme `vim`editor.
vim until.sh>
Můžete vyměnit do. sh s požadovaným jménem.
Potom uděláme náš skript spustitelný pomocí příkazu `chmod` v Linuxu.
chmod +x until.sh>
#/bin/bash
a=0
# -gt je větší než operátor
# Opakujte smyčku, dokud a není větší než 10do [ $a -gt 10]
dělat# Vytiskněte hodnoty
echo $a# zvýšení hodnoty
a=`výraz $a + 1`
Hotovo
Výstup:

Až do smyčky v Linuxu
Vysvětlení:
-
#/bin/bash>: Určuje, že skript by měl být interpretován pomocí prostředí Bash. -
a=0>: Inicializuje proměnnoua>s hodnotou 0. -
until [ $a -gt 10 ]>: Inicializuje cyklus dokud, který pokračuje tak dlouho, dokud je hodnotaa>není větší než 10. -
do>: Označuje začátek těla smyčky. -
echo $a>: Vytiskne aktuální hodnotua>konzole. -
a=>expr $a + 1 : Zvyšuje hodnotua>od 1. Theexpr>příkaz se používá pro aritmetické výrazy. -
done>: Označuje konec smyčky.
Poznámka: Skriptování shellu je jazyk citlivý na velká a malá písmena, což znamená, že při psaní skriptů je třeba dodržovat správnou syntaxi.
Příklady cyklických příkazů
1. Iterace přes barvy pomocí smyčky For
Nejprve vytvoříme soubor pomocí textového editoru v Linuxu. V tomto případě používáme `vim`editor.
vim color.sh>
Color.sh můžete nahradit požadovaným názvem.
Potom uděláme náš skript spustitelný pomocí příkazu `chmod` v Linuxu.
chmod +x color.sh>
#/bin/bash
COLORS=červená zelená modrá
# smyčka for pokračuje, dokud nepřečte všechny hodnoty z COLORS
pro COLOR v $COLORS
dělat
echo COLOR: $COLOR
Hotovo
Výstup:

Až do v Linuxu
Vysvětlení:
- Inicializace barev:
COLORS='red green blue'>: Inicializuje proměnnou s názvemCOLORS>se seznamem barevných hodnot oddělených mezerami (červená, zelená a modrá).
- Pro opakování smyčky:
for COLOR in $COLORS>: Inicializuje cyklus for, který iteruje každou hodnotu vCOLORS>variabilní.- Tělo smyčky:
echo 'COLOR: $COLOR'>: Vytiskne zprávu pro každou barvu se zobrazením aktuální hodnoty barvy.
- Tělo smyčky:
- Smyčka pokračuje, dokud nezpracuje všechny hodnoty přítomné v souboru
COLORS>variabilní.
Tento příklad ukazuje jednoduchou smyčku for v Bash, iterující přes seznam barev uložených vCOLORS>variabilní. Smyčka vytiskne zprávu pro každou barvu, která označuje aktuální zpracovávanou barvu. Cyklus se opakuje, dokud nejsou vyčerpány všechny hodnoty barev.
2. Vytvoření nekonečné smyčky s while true ve skriptu Shell
Nejprve vytvoříme soubor pomocí textového editoru v Linuxu. V tomto případě používáme `vim`editor.
vim infinite.sh>
Infinite.sh můžete nahradit požadovaným názvem.
Potom uděláme náš skript spustitelný pomocí příkazu `chmod` v Linuxu.
df.loc
chmod +x infinite.sh>
#/bin/bash
zatímco pravdivé
dělat# Příkaz, který se má provést
# sleep 1 znamená, že spí na 1 sekundu
echo Ahoj, jsem nekonečná smyčka
spát 1
Hotovo
Výstup:

nekonečná smyčka v linuxu
Vysvětlení:
Struktura nekonečné smyčky:
while true>: Inicializuje smyčku while, která pokračuje neomezeně jako podmínkatrue>je vždy pravda.- Tělo smyčky:
echo 'Hi, I am infinity loop'>: Vytiskne zprávu oznamující, že skript je v nekonečné smyčce.sleep 1>: Pozastaví provádění cyklu na 1 sekundu před další iterací.
- Tělo smyčky:
- Smyčka pokračuje donekonečna a opakovaně provádí příkazy v jejím těle.
Tento příklad ukazuje vytvoření nekonečné smyčky pomocí konstrukce while true v Bash. Smyčka nepřetržitě tiskne zprávu indikující její stav jako nekonečná smyčka a zahrnuje příkaz spánku 1, což způsobuje jednosekundové zpoždění mezi iteracemi. Nekonečné smyčky se často používají pro procesy, které potřebují běžet nepřetržitě, dokud nejsou ručně přerušeny.
3. Interaktivní smyčka pro potvrzení názvu
Nejprve vytvoříme soubor pomocí textového editoru v Linuxu. V tomto případě používáme `vim`editor.
vim name.sh>
Název.sh můžete nahradit požadovaným názvem.
Potom uděláme náš skript spustitelný pomocí příkazu `chmod` v Linuxu.
chmod +x name.sh>
#/bin/bash
SPRÁVNĚ=n
zatímco [ $CORRECT == n ]
dělat# smyčka se přeruší, když zadáte y, tj. když je vaše jméno správné
# -p znamená prompt s dotazem na vstupread -p Zadejte své jméno: JMÉNO
read -p Je ${NAME} správně? OPRAVIT
Hotovo
Výstup:

Interaktivní skript v Linuxu
Vysvětlení:
- Inicializace:
CORRECT=n>: Inicializuje proměnnou s názvemCORRECT>s hodnotou n. Tato proměnná se používá k ovládání smyčky.
- Interaktivní smyčka:
while [ '$CORRECT' == 'n' ]>: Inicializuje smyčku while, která pokračuje tak dlouho, dokud je hodnotaCORRECT>se rovná n.- Tělo smyčky:
read -p 'Enter your name:' NAME>: Vyzve uživatele k zadání jména a uloží vstup doNAME>variabilní.read -p 'Is ${NAME} correct? ' CORRECT>: Požádá uživatele o potvrzení, zda je zadané jméno správné, a aktualizujeCORRECT>podle toho variabilní.
- Tělo smyčky:
- Cyklus pokračuje, dokud uživatel nezadá y (označující správný název).
Tento příklad ukazuje interaktivní smyčku, která vyzve uživatele k zadání jména a poté požádá o potvrzení. Cyklus pokračuje, dokud uživatel nepotvrdí správnost zadaného jména zadáním y. Smyčka využívá ` read> `>příkaz pro vstup uživatele a aktualizuje soubor ` CORRECT> `>proměnná pro řízení toku smyčky.
Závěr
V tomto článku jsme diskutovali o opakování příkazů ve skriptování Bash, které pokrývajíwhile>,for>, auntil>smyčky. Uvádí použitíbreak>acontinue>příkazy pro úpravu chování smyčky. Praktické příklady ilustrují implementaci smyček, včetně iterace přes barevné hodnoty, vytváření nekonečných smyček a budování interaktivní smyčky pro ověřování uživatelských vstupů. Průvodce nabízí stručný, ale informativní zdroj pro pochopení a využití cyklických konstrukcí ve skriptování Bash.