Jak napsat zápis "pro" smyčku

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:

  1. Zadejte skripty mkdir ( více informací o mkdir zde )
  2. Zadejte cd skripty ( změní se adresář na skripty )
  3. Zadejte nano examplen.sh (kde n je příklad, na kterém pracujete)
  4. Zadejte skript
  5. Stisknutím kláves CTRL + O uložte a CTRL + X ukončete
  6. 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:

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:

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:

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:

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ů.