GNU/Linux >> Znalost Linux >  >> Linux

Tip pro profesionály:Smyčky For, While a Until

ÚROVEŇ:SYSADMIN / ČAS:1-2 min.

Zde je několik užitečných rychlých referenčních příkladů, ke kterým se můžete snadno vrátit, pokud potřebujete použít smyčky pro, while a dokud ve vašich skriptech bash shell. To je ideální pro vytváření záložek a návrat k nim později. Vždy zapomínám na jemné syntaktické rozdíly, které bash má ve srovnání s jinými jazyky, které používám, například C, PHP, Python atd.

Než vám ukážu příklady, stojí za to vědět, kdy použít jednotlivé typy smyček:

  • pro loop se trochu liší od ostatních programovacích jazyků. V podstatě vám umožňuje iterovat řadu položek v řetězci.
  • zatímco smyčka provede položky, které se mají spustit, pokud je řídicí výraz pravdivý, a zastaví se pouze tehdy, když je nepravda (nebo je ve spuštěném kódu nalezen explicitní zlom.
  • do smyčka je téměř totožná se smyčkou while, kromě toho, že kód je spuštěn, zatímco řídicí výraz je vyhodnocen jako nepravda.

PRO příklad 1:Jednoduché opakování

Tento jednoduchý typ smyčky jednoduše počítá poskytnuté hodnoty. V tomto případě to začíná na 1 a jde do 5. Je to nejzákladnější opakování.


#!/bin/bash
for i in 1 2 3 4 5
do
echo "Hello, I've done this loop $i times"
done

PŘÍKLAD 2:Opakujte akci 50krát:

Opakování lze provést tak, že začnete na hodnotě a zvýšíte počítadlo. Je to jako v konvenčnějších programovacích jazycích. Jediné, co si musíte zapamatovat, je použít (( k vyjádření numerického výpočtu.


#!/bin/bash
for ((i=1;i<=50;i++));
do
# your command, eg: echo $i
done

Tento příklad dělá přesně to, co dělat má. Existují však jednodušší způsoby, které vás nemusejí nutit vzpomenout si na lehce esoterické dvojité závorky. Podívejte se na níže uvedené příklady.

PRO Příklad 3:Práce s číselnými rozsahy

Rozsahy

Někdy může být nutné nastavit hodnotu kroku (například počítání po dvou nebo počítání pozpátku). Upozorňujeme, že bash verze 3.0 a vyšší má vestavěnou podporu pro využití rozsahů, ale není to opravdu praktické pro rozsahy kroků:

#!/bin/bash
for i in {1..5}
do
echo "This is the $i iteration of this loop"
done

Krokování:

Většina moderních distribucí Linuxu používá Bash v4.0+, který má vestavěnou podporu pro nastavení hodnoty kroku pomocí {START.. KONEC... INCREMENT} syntaxe:

#!/bin/bash
echo "Bash version ${BASH_VERSION}..."
for i in {0..10..2}
do
echo "This is the $i iteration of this loop"
done

Výstup:

This is the 0 iteration of this loop
This is the 2 iteration of this loop
This is the 4 iteration of this loop
This is the 6 iteration of this loop
This is the 8 iteration of this loop
This is the 10 iteration of this loop

PŘÍKLAD 4:Práce se slovy, argumenty a výstupem příkazů

Dříve jsme pracovali na číselných rozsazích, ale jde o to, že smyčka FOR vyhodnocuje argumenty spíše než čísla, číslo je prostě . To znamená, že mu můžete říct, aby fungoval v každé iteraci založené na řádku. Například následující provede příkaz ls. Pro každou položku, kterou vidí, bude ozvěna řádku. Všimněte si, že funguje na řetězci slov, nikoli na seznamu řádků. Pokud tedy použijete ls -l, nebude poskytovat užitečný výstup. Všimněte si také, že pokud máte názvy souborů s mezerami, interpretuje je jako různá slova (argumenty které jsou dodávány pro ).

#!/bin/bash
for i in $( ls *txt ); do
echo item: $i
done

Příklad WHILE:

Zatímco v podstatě emuluje klasičtější programovací jazyk pro strukturu smyčky:

#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done

AŽ Příklad:


#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done


Linux
  1. Bash Beginner Series #8:Loops in Bash

  2. Příklady Bash for Loop a While Loop

  3. Chycen ve smyčce? Awk While, Do While, For Loop, Break, Continue, Exit Příklady

  1. Bash pro průvodce smyčkou a příklady

  2. Pomocí a ve smyčce Bash while

  3. Podpora Big Endian a Little Endian pro řazení bajtů

  1. Udržujeme vás ve smyčce – příklady opakování pro, Zatímco, dokud

  2. Příklad bodu přerušení GDB pro C – nastavení, zobrazení, pokračování a odstranění bodů přerušení

  3. Linux bash. pro smyčku a funkci, pro sčítání čísel