Co vědět?
- In Bash pro smyčka, všechny příkazy mezi dělat a Hotovo jsou prováděny jednou pro každou položku v seznamu nebo číselném rozsahu.
- S velkým seznamem použijte v {list} pro smyčku mezi počátečním a koncovým bodem. Pomocí elipsy opakujte celý rozsah čísel, např. pro číslo v {1..10}.
- Chcete -li některá čísla přeskočit, přidejte do rozsahu třetí číslo. Například použijte {0..100..10} vypsat pouze každé 10. číslo.
V programovacím nebo skriptovacím jazyce nabízí Bash několik způsobů, jak opakovat kód – proces nazývaný smyčka – kde a pro smyčka opakuje určitou část kódu. To umožňuje spustit řadu příkazů, dokud není splněna konkrétní podmínka. V této příručce vám ukážeme, jak napsat Bash pro Smyčka.
Jak procházet seznam
Skriptovací jazyky, jako je Bash, mají podobné programovací konstrukce jako jiné jazyky. Například parametry importu získají vstup z klávesnice a uloží tyto vstupy jako proměnné, které poté provedou určitou akci na základě hodnoty vstupních parametrů. Zvažte jednoduchý příklad skriptu s názvem loop.sh: #!/bin/bash
pro číslo v 1 2 3 4 5
dělat
echo $ číslo
Hotovo
výstup 0
Bash způsob použití pro smyčky se poněkud liší od způsobu, jakým zvládají jiné programovací a skriptovací jazyky pro smyčky. Pojďme rozebrat skript. V BASH pro smyčka, všechny příkazy mezi dělat a Hotovo jsou provedeny jednou pro každou položku v seznamu. V tomto příkladu je seznam vším, co následuje za slovem v-čísla 1 2 3 4 5. Pokaždé, když se smyčka opakuje, je do proměnné určené za slovem vložena další hodnota v seznamu pro. Ve výše uvedené smyčce je proměnná volána číslo. Příkaz echo zobrazuje informace na obrazovce. Tento příklad proto převezme čísla 1 až 5 a každé číslo vyvede po jednom na obrazovku:
Jak smyčka mezi počátečním a koncovým bodem
Problém tohoto skriptu loop.sh spočívá v tom, že pokud chcete zpracovat větší seznam (například 1 až 500), zadávání všech čísel by trvalo věky. Místo toho zadejte počáteční a koncový bod: #!/Bin/bash
pro číslo v {1..10}
dělat
echo „$ number“
Hotovo
výstup 0
Pravidla jsou stejná. Hodnoty za slovem v vytvořte seznam, který chcete iterovat, a každá hodnota v seznamu je umístěna v proměnné (tj. číslo) a pokaždé, když smyčka iteruje, příkazy mezi dělat a Hotovo jsou prováděny. Hlavní rozdíl je ve způsobu sestavení seznamu. Kudrnaté závorky označují rozsah a rozsah je v tomto případě 1 až 10 (dvě tečky oddělují začátek a konec rozsahu). Tento příklad proto prochází každým číslem mezi 1 a 10 a vydává číslo na obrazovku. Stejná smyčka mohla být zapsána takto, se syntaxí shodnou s prvním příkladem: pro číslo v 1 2 3 4 5 6 7 8 9 10
Jak přeskočit čísla v rozsahu
Předchozí příklad ukázal, jak procházet mezi počátečním a koncovým bodem. Zde je postup, jak přeskočit čísla v rozsahu. Chcete -li například smyčku mezi 0 a 100, ale zobrazit pouze každé desáté číslo, použijte k získání tohoto výstupu následující skript: #!/Bin/bash
pro číslo v {0..100..10}
dělat
echo „$ number“
Hotovo
výstup 0
Pravidla jsou stejná. Mezi nimi je seznam, proměnná a sada příkazů dělat a Hotovo. Seznam tentokrát vypadá takto: {0..100..10}. První číslo je 0 a koncové číslo je 100. Třetí číslo (10) je počet položek v seznamu, které přeskočí. Výše uvedený příklad proto zobrazuje následující výstup:
Praktický příklad
U smyček můžete více než iterovat seznamy čísel. Jako seznam například použijte výstup jiných příkazů. Následující příklad ukazuje, jak převést zvukové soubory z MP3 do WAV: #!/Bin/bash
pro soubor ve formátu ./*.mp3
dělat
mpg -w ./wavs/“${file}“.wav „$ soubor“
Hotovo
Seznam v tomto příkladu je každý soubor s příponou .MP3 v aktuální složce a proměnnou je soubor. Příkaz mpg převede soubor MP3 na WAV. Tento nástroj však pravděpodobně budete muset nejprve nainstalovat pomocí správce balíčků.