GNU/Linux >> Znalost Linux >  >> Linux

Pochopení smyčky for ve skriptech Shell

Pokračujeme v našich předchozích výukových programech a pojďme dnes pochopit smyčku for ve skriptech shellu. Smyčku while jsme již probrali dříve a smyčka for má podobné použití s ​​jiným formátem.

Začínáme

Smyčky jsou široce používány programátory po celém světě. Přidání smyček do skriptu shellu vám pomůže zefektivnit váš kód snížením množství kódu, který potřebujete napsat.

To se provádí automatizací provádění sady příkazů ve vašem skriptu shellu namísto jejich opakovaného psaní.

Smyčku for používáme ve skriptech shellu pro případy, kdy víme, kolikrát chceme, aby se naše smyčka spustila. Tento počet iterací lze určit seznamem položek. Pojďme pochopit fungování cyklu for ve skriptech shellu.

Jak vytvořit smyčku for ve skriptech Shell?

Existují dva způsoby, jak spustit smyčku for ve skriptech shellu.

1. Pomocí klíčového slova „in“

for var in val_1 val_2 val_3 ... val_n
do
    statement 1
    statement 2
    statement 3
done

Zde máme čtyři klíčová slova, konkrétně for, in, do a hotovo .

  1. První klíčové slovo „pro“ určuje začátek cyklu, když spustíme náš shell skript.
  2. Za ní následuje proměnná, která může nabývat hodnot určených hodnotami val_1, val_2 atd.
  3. Klíčové slovo v určuje začátek tohoto seznamu hodnot. Tyto hodnoty musí být odděleny mezerami, protože jakýkoli jiný znak, například čárka, bude považován za součást hodnoty.
  4. Klíčové slovo dělat se používá před příkazy, které chceme provést
  5. hotovo znamená konec naší smyčky.

2. Pomocí inicializace ve stylu C

Dalším způsobem, jak použít smyčku for ve skriptech shellu, je začlenit programovací přístup v jazyce C. Takto by vypadala syntaxe.

for (( initialization parameter; condition; updation))
do
    statement 1
    statement 2
    statement 3
done

Zde nahrazujeme „in“ klíčové slovo pro přístup více podobný C.

  1. Než smyčka zahájí první iteraci, použije se inicializační parametr k inicializaci proměnné, která bude fungovat jako počítadlo počtu smyček, po které naše smyčka běží
  2. Pokud je splněna podmínka vyhodnotí jako TRUE, cyklus provede všechny příkazy zapsané mezi „do “ a „hotovo “.
  3. Nakonec poslední parametr „updation ” se používá k aktualizaci proměnné fungující jako počítadlo.

Příklady cyklu for ve skriptech shellu

Nyní jsme obeznámeni s konceptem a fungováním cyklu for ve skriptech shellu. Ale abyste příkazu správně porozuměli, musíte jej umět použít ve svém kódu.

Pojďme si projít několik příkladů praktického použití smyček for

1. Vytvoření základní smyčky for

Začneme něčím jednoduchým a základním. Zde používáme první metodu použití cyklu for.

Používáme klíčové slovo v spustit smyčku po dobu 5 iterací a zároveň sdělit uživateli, kolikrát byla smyčka provedena. Takto by měla smyčka vypadat ve vašem kódu.

#!/bin/sh
for i in 1 2 3 4 5
do
  echo "Executing loop $i time(s)"
done

2. Generování náhodného seznamu čísel pomocí pro smyčku ve skriptech Shell

Nyní přejdeme k příkladu použití C-like varianty smyčky For. Všichni víme, jak můžeme použít vestavěné příkazy ke generování pseudonáhodných čísel pomocí skriptu shellu.

Zde použijeme tyto znalosti k vygenerování seznamu 5 pseudonáhodných čísel.

#!/bin/sh
for (( i=1; i <= 5; i++ ))
do
 echo "Randomiser iteration $i: $RANDOM"
done

3. Tisk názvů souborů a adresářů pomocí funkce Loop

Práce s velkým množstvím souborů a adresářů jeden po druhém trvá dlouho. Psát stále stejný příkaz je ztráta času.

Měli bychom tedy využít výhod cyklu for k automatizaci provádění příkazu. Pojďme se podívat na ukázkový skript shellu níže a vytisknout názvy všech souborů a adresářů přítomných ve vašem domovském adresáři.

#!/bin/sh
i=1
cd ~
for item in *
do
    echo "File number $((i++)) : $item"
done

Závěr

Cykly for jsou mocným nástrojem pro programátory shellu. Je to nejlepší nástroj, který můžete použít, když potřebujete provést sadu příkazů pevně stanovený počet opakování.

Automatizací provádění konkrétních příkazů nejenže potřebujete psát méně kódu, ale také uvolňujete čas, který lze využít v důležitějších úlohách, jako je ladění.

Doufáme, že vám tento tutoriál pomohl pochopit, jak používat funkci smyčky For. Pokud máte nějaké dotazy, zpětnou vazbu nebo návrhy, neváhejte se na nás obrátit v komentářích níže.


Linux
  1. Správné zamykání skriptů Shell?

  2. Rozšíření souborů pro skripty Unix Shell?

  3. Pochopení rc skriptů v Linuxu

  1. Unit testování pro shell skripty

  2. Variabilní rozsah pro skripty bash shell a funkce ve skriptu

  3. Vnořená smyčka for

  1. Přizpůsobení prostředí Bash

  2. Pochopení YAML pro Ansible

  3. Existují konvence pojmenování proměnných ve skriptech Shell?