Android

Bash na smyčku

? Jak zrobit hrubý Smokepurpp Type Beat tutorial ?

? Jak zrobit hrubý Smokepurpp Type Beat tutorial ?

Obsah:

Anonim

Smyčky jsou jedním ze základních konceptů programovacích jazyků. Smyčky jsou užitečné, pokud chcete opakovaně spouštět řadu příkazů, dokud není dosaženo určité podmínky.

Ve skriptovacích jazycích, jako je Bash, jsou smyčky užitečné pro automatizaci opakujících se úkolů.

Existují tři základní konstrukty smyčky v skriptování Bash, pro smyčku, zatímco smyčku a do smyčky.

V tomto tutoriálu se budeme věnovat základům smyček v Bash. Také vám ukážeme, jak používat příkazy break a pokračovat ke změně toku smyčky.

Standardní basa pro smyčku

Smyčka for iteruje seznam položek a provádí danou sadu příkazů.

Bash for loop má následující podobu:

for item in do done

Seznam může být řada řetězců oddělených mezerami, rozsah čísel, výstup příkazu, pole atd.

Smyčka přes řetězce

V níže uvedeném příkladu bude smyčka iterovat každou položku v seznamu řetězců a proměnný element bude nastaven na aktuální položku.

for element in Hydrogen Helium Lithium Beryllium do echo "Element: $element" done

Smyčka bude produkovat následující výstup:

Element: Hydrogen Element: Helium Element: Lithium Element: Beryllium

Smyčka přes číselný rozsah

Můžete použít sekvenční výraz k určení rozsahu čísel nebo znaků definováním počátečního a koncového bodu rozsahu. Sekvenční výraz má následující podobu:

{START..END}

V příkladu níže bude smyčka iterovat všemi čísly od 0 do 3.

for i in {0..3} do echo "Number: $i" done

Number: 0 Number: 1 Number: 2 Number: 3

Počínaje Bashem 4 je také možné určit přírůstek při použití rozsahů. Výraz má následující podobu:

{START..END..INCREMENT}

for i in {0..20..5} do echo "Number: $i" done

Number: 0 Number: 5 Number: 10 Number: 15 Number: 20

Smyčka přes prvky pole

Můžete také použít smyčku for pro iteraci nad řadou prvků:

V níže uvedeném příkladu definujeme pole BOOKS a iteraci přes každý prvek pole.

BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby') for book in "${BOOKS}"; do echo "Book: $book" done

Book: In Search of Lost Time Book: Don Quixote Book: Ulysses Book: The Great Gatsby

Bash pro smyčku ve stylu C.

Syntaxe stylu C pro smyčku má následující podobu:

for ((INITIALIZATION; TEST; STEP)) do done

Část INITIALIZATION se provede pouze jednou při spuštění smyčky. Poté je vyhodnocena část TEST . Pokud je nepravda, smyčka for je ukončena. Pokud je TEST pravdivý, jsou provedeny příkazy uvnitř těla pro smyčku a část STEP je aktualizována.

V následujícím kódu smyčka inicializuje i = 0 , poté před každou iterací zkontroluje, zda i ≤ 10 . Pokud je true, vytiskne aktuální hodnotu i a i 1 ( i++ ), jinak smyčka končí.

for ((i = 0; i <= 1000; i++)); do echo "Counter: $i" done

Smyčka iteruje 1001krát a vytvoří následující výstup:

Counter: 0 Counter: 1 Counter: 2… Counter: 998 Counter: 999 Counter: 1000

Přerušení a pokračování prohlášení

Příkazy break a pokračovat lze použít k řízení provádění smyčky for.

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

Příkaz break ukončí aktuální smyčku a předá řízení programu příkazu, který následuje po ukončeném příkazu. Obvykle se používá k ukončení smyčky, když je splněna určitá podmínka.

V následujícím příkladu používáme příkaz if k ukončení provádění smyčky, jakmile se aktuální iterovaná položka rovná „Lithium“.

for element in Hydrogen Helium Lithium Beryllium; do if]; then break fi echo "Element: $element" done echo 'All Done!'

Element: Hydrogen Element: Helium All Done!

Pokračovat v prohlášení

Příkaz pokračovat opustí aktuální iteraci smyčky a předá řízení programu další iteraci smyčky.

V následujícím příkladu provádíme iteraci řadou čísel a když se aktuální iterovaná položka rovná „2“, příkaz pokračování způsobí, že se provádění vrátí na začátek smyčky a bude pokračovat další iterací.

for i in {1..5}; do if]; then continue fi echo "Number: $i" done

Number: 1 Number: 3 Number: 4 Number: 5

Bash Příklady smyčky

Přejmenování souborů s mezerami v názvu souboru

Následující příklad ukazuje, jak pomocí Bash for loop přejmenovat všechny soubory v aktuálním adresáři mezerou v jeho názvech nahrazením mezery podtržítkem.

for file in *\ *; do mv "$file" "${file// /_}" done

Rozdělme si kód po řádku:

  • První řádek vytvoří smyčku for a iteruje seznamem všech souborů s mezerou v názvu. Výraz *\ * vytvoří seznam. Druhý řádek se vztahuje na každou položku seznamu a přesune soubor do nového, který nahradí mezeru podtržítkem ( _ ). Část ${file// /_} používá rozšíření shellu k nahrazení vzoru v parametru řetězcem. done označuje konec segmentu smyčky.

Změna přípony souboru

Následující příklad ukazuje, jak pomocí Bash for loop přejmenovat všechny soubory končící na.jpeg v aktuálním adresáři nahrazením přípony z.jpeg na.jpg.

for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done

Pojďme analyzovat kód po řádku:

  • První řádek vytvoří smyčku for a iteruje seznamem všech souborů končících „.jpeg“. Druhý řádek se vztahuje na každou položku v seznamu a přesune soubor do nového, který nahradí „.jpeg“ za „.jpg“. ${file%.jpeg} k odstranění části '.jpeg' z názvu souboru pomocí provedeného rozšíření parametru shellu označuje konec segmentu smyčky.

Závěr

Nyní byste měli dobře rozumět tomu, jak použít bash pro smyčku k iteraci seznamy.

terminál bash smyčky