GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Profi-Tipp:For-, While- und Until-Schleifen

LEVEL:SYSADMIN / ZEIT:1-2 Min.

Hier sind einige praktische Schnellreferenzbeispiele, zu denen Sie einfach zurückkehren können, wenn Sie Schleifen für for, while und until in Ihren Bash-Shell-Skripten verwenden müssen. Dies ist perfekt, um Lesezeichen zu setzen und zu einem späteren Zeitpunkt darauf zurückzukommen. Ich vergesse immer die subtilen Syntaxunterschiede, die Bash im Vergleich zu anderen Sprachen, die ich verwende, wie zum Beispiel C, PHP, Python usw., hat.

Bevor ich Ihnen die Beispiele zeige, sollten Sie wissen, wann Sie welche Art von Schleife verwenden:

  • Das für Schleife unterscheidet sich ein wenig von anderen Programmiersprachen. Im Grunde können Sie damit eine Reihe von Elementen innerhalb einer Zeichenfolge durchlaufen.
  • Die während Schleife führt die auszuführenden Elemente aus, wenn der Steuerausdruck wahr ist, und stoppt nur, wenn er falsch ist (oder im ausgeführten Code eine explizite Unterbrechung gefunden wird).
  • Das bis -Schleife ist fast identisch mit der While-Schleife, außer dass der Code ausgeführt wird, während der Steuerausdruck als falsch ausgewertet wird.

FÜR Beispiel 1:Einfache Wiederholung

Dieser einfache Schleifentyp zählt einfach die bereitgestellten Werte. In diesem Fall beginnt es bei 1 und geht bis 5. Es ist die grundlegendste Wiederholung.


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

FÜR Beispiel 2:Eine Aktion 50 Mal wiederholen:

Die Wiederholung kann erfolgen, indem bei einem Wert begonnen und ein Zähler erhöht wird. Dies ist so, wie Sie es in konventionelleren Programmiersprachen tun würden. Das Einzige, woran Sie denken müssen, ist die Verwendung des (( um eine numerische Berechnung auszudrücken.


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

Dieses Beispiel tut genau das, was es tun soll. Aber es gibt einfachere Möglichkeiten, die Sie nicht an die leicht esoterische Doppelklammer erinnern müssen. Sehen Sie sich die folgenden Beispiele an.

FÜR Beispiel 3:Arbeiten mit numerischen Bereichen

Bereiche

Manchmal müssen Sie möglicherweise einen Schrittwert festlegen (z. B. in Zweierschritten zählen oder rückwärts zählen). Beachten Sie, dass bash Version 3.0+ ist hat eingebaute Unterstützung für das Aufbrauchen von Bereichen, aber nicht wirklich praktisch für Schrittbereiche:

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

Stepping:

Die meisten modernen Linux-Distributionen führen Bash v4.0+ aus, das über eine integrierte Unterstützung für das Einrichten eines Schrittwerts mit {START.. verfügt ENDE.. INCREMENT}-Syntax:

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

Ausgabe:

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

FÜR Beispiel 4:Arbeiten an Wörtern, Argumenten und der Ausgabe von Befehlen

Früher haben wir an numerischen Bereichen gearbeitet, aber die Sache ist, dass die FOR-Schleife Argumente auswertet Anstelle von Zahlen ist eine Zahl einfach ein . Das bedeutet, dass Sie ihm sagen können, dass er bei jeder zeilenbasierten Iteration arbeiten soll. Im Folgenden wird beispielsweise der Befehl ls ausgeführt. Für jedes Element, das es sieht, gibt es die Zeile wieder. Beachten Sie, dass es mit einer Reihe von Wörtern funktioniert, nicht mit einer Liste von Zeilen. Wenn Sie also ls -l verwenden, liefert es keine nützliche Ausgabe, beachten Sie auch, wenn Sie Dateinamen mit Leerzeichen darin haben, interpretiert es diese als unterschiedliche Wörter (Argumente die an for geliefert werden ).

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

WÄHREND Beispiel:

Während emuliert im Wesentlichen die klassischere Programmiersprache für die Schleifenstruktur:

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

BIS Beispiel:


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


Linux
  1. Linux-Scripting:3 Anleitungen für While-Schleifen in Bash

  2. Bash-Anfängerserie Nr. 8:Schleifen in Bash

  3. Beispiele für Bash-For- und While-Schleifen

  4. In der Schleife gefangen? Awk While, Do While, For Loop, Break, Continue, Exit Beispiele

  5. Bleiben Sie auf dem Laufenden – Beispiele für Bash-For-, While- und Until-Loops

Bash für Schleife

Bash bis Loop

Bash brechen und fortfahren

Bash-Skripting – While- und Until-Schleife mit Beispielen erklärt

Bash For-Schleifen mit Beispielen

Bash-Scripting Teil 2 – For- und While-Schleifen mit Beispielen