GNU/Linux >> Znalost Linux >  >> Linux

Bash For Loop s praktickými příklady

Jednou ze základních vlastností každého počítačového programovacího jazyka je schopnost opakovaně spouštět část kódu. Šetří to spoustu času a také snižuje počet řádků kódu v programu. Programování Bash umožňuje uživatelům spouštět úlohu znovu a znovu pomocí smyček. V tomto článku se podíváme na Pro smyčku prohlášení.

Pro smyčku příkaz se používá k provedení řady příkazů, dokud se určitá podmínka nestane nepravdivou. Můžete jej například použít ke spuštění linuxového příkazu pětkrát nebo jej použít ke čtení a zpracování souborů v systémech, dokud nedosáhnete konkrétní podmínky.

Příkaz Bash For Loop

Pro smyčku v Bash programování přichází ve dvou různých syntaxích:

  • Pro In Loop
for item in (list)
do
command_one
command_two
...
done

Ve výše uvedené syntaxi For In Loop jsou čtyři klíčová slova – for, in, do a done. Seznam odkazuje na hodnoty v „seznamu“. Položka je název proměnné, který není klíčovým slovem v programovacím jazyce Bash.

Když program spustíme, provede příkaz v závislosti na počtu položek v „seznamu“. Pokud tedy seznam obsahuje pět číslic (1 2 3 4 5), příkaz se provede pětkrát.

V každé iteraci je hodnota v seznamu uložena v proměnné item a použita v těle programu.

  • Smyčka For se syntaxí podobnou programovacímu jazyku C
for (( expression_1; expression_2; expression_3))
do
command_one
command_two
...
done

S výše uvedeným příkazem For Loop, pokud jste vývojář C, C++ nebo Java, měli byste znát syntaxi. ‚výraz_1 znamená inicializaci, výraz_2 znamená podmínku a výraz_3 znamená aktualizaci.

Když program spustíme, před provedením první iterace, která inicializuje hodnoty proměnných pro smyčku For, se vyhodnotí výraz „expression_1“.

Tělo programu se provádí, dokud výraz_2 nebude mít hodnotu TRUE. Tělo programu zde odkazuje na příkazy mezi klíčovými slovy do a done. Nyní, po každé iteraci programu, je vyhodnocen výraz_3.

Když jsme to pochopili, podívejme se na některé příklady Bash For Loop, které můžete využít ve svých každodenních činnostech při práci se systémy Linux. Napíšeme skripty a spustíme je v terminálu. Všimněte si, že všechny Bash skripty používají příponu '.sh.'.

Pomocí For Loop vytiskněte řadu řetězců

Smyčku For In můžete použít k tisku řady řetězců. Podívejte se na kód níže. Tři soubory použité v programu již máme v pracovním adresáři. To je „testFile1“, „testFile2“ a „testFile3“.

#!/bin/bash
for item in testFile1 testFile2 testFile3
do
cat $item
echo "Done with file $item"
echo 
done

Výstup je:

Výše uvedený program vypíše obsah souboru uvedeného v seznamu. To znamená, testFile1, testFile2 a testFile3. Příkaz „cat“ je linuxový nástroj používaný k zobrazení obsahu souboru.

Proto program prochází soubory začínající „testFile1“, provede na něm příkaz „cat“ před tiskem příkazu „done with testFilee“ a iteruje na další soubor.

Po iteraci všech souborů v seznamu se program automaticky ukončí.

„Pro In Loop“ s prvky Array to Backup Files

Smyčku For In můžete použít k iteraci prvků v poli. Podívejte se na kód níže.

#!/bin/bash

Files=('testFile1' 'testFile2' 'testFile3')
for item in "${Files[@]}"; 
do
cp $item{,.bak}
echo "Created a backup of $item"
done

Výstup je uveden níže.

Výše uvedený program používá příkaz cp k vytváření záloh souborů v poli. Při iteraci každého souboru vytvoří zálohu dat a před přechodem na další položku v poli vytiskne zprávu „Created Backup message“.

„Pro In Loop“ s rozsahem

Můžete iterovat přes rozsah čísel. Například chcete iterovat mezi číslicemi 1 – 100. Zapsáním všech těchto čísel do vašeho programu bude kód docela velký. Můžeme to vyřešit použitím rozsahů. Podívejte se na kód níže.

#!/bin/bash

for i in {0..50}
do
echo "COUNT: $i"
done

Výstup by měl být takový, jak je uvedeno níže.

Z výše uvedeného výstupu vidíme, že program vytiskl čísla 1 – 50. Je to proto, že jsme mu dali rozsah 1 – 50 číslic.

Předpokládejme, že chcete před tiskem výstupu vytvořit rozsah, který přeskočí určitý počet číslic. Potom budeme muset do syntaxe rozsahu zahrnout třetí parametr. Viz kód níže.

#!/bin/bash

for i in {0..100..10}
do
echo "COUNT: $i"
done

Výstup by měl být takový, jak je uvedeno níže.

Výstup by měl být takový, jak je uvedeno níže.

Z obrázku výše vidíme, že program vytiskl čísla 0 – 100, ale v každé iteraci vynechal deset (10) číslic.

„Pro smyčku“ se syntaxí programování v jazyce C

Když jsme se podívali na několik příkladů s „For In Loop“, podívejme se na další syntaxi For Loop. Obsahuje výraz inicializace, který inicializuje smyčku, výraz podmínky, který určuje provádění programu, a výraz přírůstek, který aktualizuje hodnotu proměnné.

Podívejte se na kód níže.

#!/bin/bash

for (( i=5; i>=1; i-- ))
do 
echo "COUNT: $i"
done

Výstup by měl být takový, jak je uvedeno níže.

Vytvořte nekonečnou smyčku pomocí For Loop

K vytvoření nekonečné smyčky v Bash použijeme programovací syntaxi C. Viz kód níže.

#!/bin/bash

for (( ; ; ))
do
echo "Use Ctrl+C to terminate the loop."
echo "Starting Infinite Loop..."
done

Výstup by měl být takový, jak je uvedeno níže.

Chcete-li se dostat z nekonečné smyčky, stiskněte Ctrl + C pro zrušení procesu.

Příkazy Break and Continue v „For Loop“

Při programování příkazy Break a Continue řídí provádění programu. Příkaz Break ukončí program a opustí smyčku. Příkaz Continue na druhé straně vynutí provedení další iterace programu.

  • Prohlášení o přerušení

Podívejme se na program níže, který využívá příkaz Break.

#!/bin/bash
for distro in Ubuntu Manjaro Debian Fedora Kali ArchLinux
do
if [[ "$distro" == 'kali' ]]; then
break
fi
echo "Linux_distribution: $distro"
done

Výstup by měl být takový, jak je uvedeno níže.

Z obrázku výše vidíme, že „Kali“ nebylo na výstupu vytištěno. Je to proto, že jsme zadali ‘If Condition’, která zkontrolovala hodnotu, kterou má proměnná ‘distro’. Pokud byla hodnota ‘Kali’, byl proveden příkaz ‘break’ a ukončil smyčku.

Jak můžete vidět, ArchLinux nebyl vytištěn ve výstupu, protože příkaz break ukončil program.

Příkaz Pokračovat

Na rozdíl od příkazu Break příkaz Continue ukončí program na této části, ale vynutí spuštění další iterace programu.

Podívejte se na kód níže.

#!/bin/bash

for distro in Ubuntu Manjaro Debian Fedora Kali ArchLinux
do
if [[ "$distro" == 'Kali' ]]; then
continue
fi
echo "Linux_distribution: $distro"
done

Výstup by měl být takový, jak je uvedeno níže.

Z obrázku výše vidíme, že „Kali“ nebylo na výstupu vytištěno. Je to proto, že jsme dali ‘If Condition’, která zkontrolovala, aby se zjistila hodnota, kterou má proměnná ‘distro.’ Pokud byla hodnota ‘Kali’, byl proveden příkaz ‘continue’. V tomto bodě ukončil smyčku, ale vynutil si provedení další části programu.

Jak můžete vidět, ‚Kali‘ nebylo vytištěno ve výstupu, zatímco ‚ArchLinux‘ ano. Příkaz Continue vynutil provedení další části programu.

Praktičtější Bash programy využívající smyčku For

Když jsme se podívali na několik programů Bash pomocí příkazu „For Loop“, podívejme se na příklady ze skutečného života, které můžete použít ke správě svých systémů Linux.

  • Program Bash pro převod souborů MP3 na WAV

V tomto programu budete potřebovat nástroj MPG123 nainstalovaný ve vašem systému. Níže uvedený kód vyhledá jakýkoli soubor s příponou „.mp3.“ a převede jej na soubor „.wav.“ pomocí nástroje „mpg123“.

#!/bin/bash
for item in ./*.mp3
do
mpg123 -w music.wav $item.mp3
done

Z obrázku níže vidíme, že jsme převedli „Audio.mp3“ na „Music.wav“.

  • Program „For Loop“ ke kontrole, zda existují soubory firefox.desktop.

Níže uvedený program projde všechny soubory v adresáři application/ a poskytne výstup, zda je přítomen firefox.desktop.

#!/bin/bash
for item in /usr/share/applications/*
do
if [ "${item}" == "/usr/share/applications/firefox.desktop" ]
then
echo "Firefox.Desktop is present in the applications directory";
fi
done

Závěr

Nyní, když jste se naučili používat Pro smyčku v programování Bash, vytvořte programy pro automatizaci různých úloh ve vašich systémech Linux. Pokud vám tento článek pomohl, neváhejte a sdílejte odkaz se svými přáteli.


Linux
  1. Bash pro průvodce smyčkou a příklady

  2. Bash If-Else prohlášení s příklady

  3. Příklady Bash for Loop a While Loop

  1. Bash Shell Exit Status Tutorial s praktickými příklady

  2. Udržujeme vás ve smyčce – příklady opakování pro, Zatímco, dokud

  3. 12 Bash pro příklady smyček pro vaše skriptování prostředí Linux

  1. Jak napsat Bash skript s příklady

  2. Bash HereDoc výukový program s příklady

  3. Bash for smyčky Příklady