Jak používat smyčku BASH "pro" v shell skriptů
BASH (což znamená Bourne Again Shell) je skriptovací jazyk používaný většinou operačních systémů Linux a UNIX.
Můžete spustit BASH příkazy v okně terminálu jeden po druhém, nebo můžete přidat příkazy do textového souboru pro vytvoření shell skriptu.
Skvělá věc o psaní shell skriptů je, že je můžete spustit znovu a znovu. Představte si například, že potřebujete přidat uživatele do systému, nastavit jejich oprávnění a spravovat výchozí prostředí. Můžete buď napsat příkazy na kus papíru a spustit je při přidávání nových uživatelů, nebo můžete napsat jediný skript a jen předat parametry do tohoto skriptu.
Skriptovací jazyky jako BASH mají podobné programovací konstrukty jako jiné jazyky. Můžete například použít parametry importu, abyste získali vstup z klávesnice a ukládali je jako proměnné. Potom můžete skript provést určitou akci založenou na hodnotě vstupních parametrů .
Klíčovou součástí každého programovacího a skriptovacího jazyka je schopnost opakovat a opakovat stejný kód.
Existuje několik způsobů, jak opakovat kód (také známý jako smyčky). V této příručce se zobrazí, jak napsat smyčku "pro".
Řetězec A for opakuje určitou část kódu znovu a znovu. Jsou užitečné, takže řada příkazů může pokračovat v chodu, dokud nebude splněna určitá podmínka, po které se zastaví.
V této příručce se vám zobrazí pět způsobů, jak použít smyčku pro použití v skriptu BASH.
Než začnete
Než začnete s příklady smyčky pro, musíte otevřít okno terminálu a postupujte takto:
- Zadejte skripty mkdir ( více informací o mkdir zde )
- Zadejte cd skripty ( změní se adresář na skripty )
- Zadejte nano examplen.sh (kde n je příklad, na kterém pracujete)
- Zadejte skript
- Stisknutím kláves CTRL + O uložte a CTRL + X ukončete
- Spustit bash examplen.sh (opět, když n je příklad, se kterým pracujete)
Jak se slučovat skrze seznam
#! / bin / bash
pro číslo v 1 2 3 4 5
dělat
echo $ číslo
Hotovo
výstup 0
BASH způsob používání smyček "pro" se poněkud liší od způsobu, jakým většina ostatních programovacích a skriptovacích jazyků zpracovává smyčky "pro". Pojďme si rozdělit skript dolů ...
Ve smyčce BASH "pro" všechny jsou pro každou položku v seznamu provedeny příkazy mezi provedením a provedením .
Ve výše uvedeném příkladu je seznam všechno, co přichází po slově v (tj. 1 2 3 4 5).
Pokaždé, když smyčka iteruje, je další hodnota v seznamu vložena do proměnné zadané za slovem "pro" . Ve výše uvedené smyčce se proměnná nazývá číslo .
Příkaz echo slouží k zobrazení informací na obrazovce.
Proto tento příklad přebírá čísla 1 až 5 a vystupuje je jeden po druhém na obrazovku:
- 1
- 2
- 3
- 4
- 5
Jak slučovat mezi počátečním a koncovým bodem
Problém s výše uvedeným příkladem spočívá v tom, že pokud chcete zpracovat větší seznam (např. 1 až 500), mělo by to trvat několik let, kdybyste na prvním místě zadali všechna čísla.
To nás přivádí k druhému příkladu, který ukazuje, jak určit počáteční a koncový bod:
#! / bin / bash
pro číslo v {1..10}
dělat
echo "$ number"
Hotovo
výstup 0
Pravidla jsou v podstatě stejná. Hodnoty za slovem " in" tvoří seznam pro opakování a každá hodnota v seznamu je umístěna v proměnné (tj. Číslo) a pokaždé, když se opakuje smyčka, jsou prováděny příkazy mezi provedením a provedením.
Hlavním rozdílem je způsob vytváření seznamu. Křivkové závorky {} v podstatě označují rozsah a rozsah je v tomto případě 1 až 10 (dvě tečky oddělují počátek a konec rozsahu).
Tento příklad proto prochází každým číslem mezi 1 a 10 a vyvede číslo na obrazovku následujícím způsobem:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Stejná smyčka mohla být napsána takto, se stejnou syntaxí jako první příklad:
pro číslo v 1 2 3 4 5 6 7 8 9 10
Jak přeskočit čísla v rozmezí
Předchozí příklad ukázal, jak slučovat mezi počátečním a koncovým bodem, takže se nyní podíváme na to, jak přeskočit čísla v rozsahu.
Představte si, že chcete smyčku mezi 0 a 100, ale zobrazovat pouze každé desáté číslo. Následující skript ukazuje, jak to udělat:
#! / bin / bash
pro číslo v {0..100..10}
dělat
echo "$ number"
Hotovo
výstup 0
Pravidla jsou v podstatě stejná. K dispozici je seznam, proměnná a sada příkazů, které se mají provést mezi provedením a dokončením . 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é bude přeskočit.
Výše uvedený příklad proto zobrazuje následující výstup:
- 0
- 10
- 20
- 30
- 40
- 50
- 60
- 70
- 80
- 90
- 100
Tradiční hledá smyčku
Typ BASH pro zápis smyček je v porovnání s jinými programovacími jazyky mírně podivný.
Můžete však napsat smyčku v podobném stylu jako programovací jazyk C, například:
#! / bin / bash
pro ((číslo = 1; číslo <100; číslo ++))
{{
pokud (($ číslo% 5 == 0))
pak
echo "$ číslo je dělitelné o 5"
fi
}}
výstup 0
Smyčka začíná nastavením čísla proměnné na 1 (číslo = 1 ). Smyčka bude iterovat, zatímco hodnota čísla je menší než 100 ( číslo <100 ). Hodnota číselných změn přidáním 1 po každé iteraci ( číslo ++ ).
Všechno mezi kudrnatými příchytkami se provádí prostřednictvím každé iterace smyčky.
Bit mezi těmito prsty kontroluje hodnotu čísla , rozdělí jej o 5 a porovná zbytek s číslem 0. Pokud je zbytek 0, číslo je dělitelné o 5 a pak se zobrazí na obrazovce.
Například:
- 5 je dělitelná 5
- 10 je dělitelná číslem 5
- 15 je dělitelná číslem 5
Chcete-li změnit velikost kroku iterace, můžete číslo číslo + změnit na číslo = číslo + 2 , číslo = číslo + 5 nebo číslo = číslo + 10 apod.
To lze dále snížit na číslo + = 2 nebo číslo + = 5 .
Praktický příklad
Pro smyčky může dělat více než opakovat seznam čísel. Ve skutečnosti můžete použít výstup ostatních příkazů jako seznam.
Následující příklad ukazuje, jak převést zvukové soubory z formátu MP3 do formátu WAV :
#! / bin / bash
Seznam v tomto příkladu je každý soubor s příponou .MP3 v aktuální složce a proměnná je soubor .
Příkaz mpg převede soubor MP3 do formátu WAV. Pravděpodobně je však nutné nejdříve nainstalovat pomocí správce balíčků.