Bash für Schleife in einer Zeile

Bash für Schleife in einer Zeile
In jeder Programmier- oder Skriptsprache ist die Schleife eine typische Funktion. Schleifen sollen im Allgemeinen eine sich wiederholende Aufgabe ausführen, bis eine bestimmte Bedingung erfüllt ist. Bash ist eine leistungsstarke Skriptsprache, die alle Hauptmerkmale einer Skriptsprache unterstützt (einschließlich Schleifen).

Diese Anleitung zeigt eine Zeile für Schleifen in Bash.

Für Schleifen verprügeln

Der Bash verfügt über mehrere Schleifentypen - für, während und bis. Jede Art von Schleife ist mit einer anderen Struktur ausgestattet. Die Grundlagen bleiben jedoch gleich. Für Anfänger erklärt dieser Leitfaden eingehend über verschiedene Bash-Schleifen und die Implementierung.

Wie der Titel dieses Leitfadens schon sagt, liegt unser Fokus auf der Schleife. Während für Loop im Allgemeinen mehrere Zeilen erforderlich sind, können wir sie in einer einzigen Zeile darstellen, wenn die Schleife einfach genug ist. Dieser Prozess erfordert jedoch ein Verständnis der Grundlagen von Bash für eine Schleife.

Um unsere Bash -Codes auszuführen, brauchen wir ein Shell -Skript. Ich habe bereits ein Dummy -Skript, um unsere Codes auszuführen.

$ Cat Dummy.Sch

Für Schleifenstruktur

Dies ist die Grundstruktur der Bash für die Schleife.

für in [Liste]
Tun
Erledigt

Hier ist ein schnelles Beispiel für Loop -Beispiele zur Implementierung dieser Struktur.

denn ich in 1… 5
Tun
Echo "Nummer: $ i"
Erledigt

Bash unterstützt auch den C-Stil für die Schleife. Wenn Sie einen Programmierhintergrund in C haben, ist C-Art für Loop leicht zu verstehen.

für ((; ; ))
Tun
Erledigt

Lassen Sie uns den C-Stil für die Schleife in Aktion setzen.

für ((i = 1; i <= 5; i++)); do
Echo "Nummer: $ i"
Erledigt

Für Schleife kann auch mit Dateien funktionieren. Im folgenden Beispiel sucht die Schleife alle Partitionen unter der Festplatte „/dev/sda“ und druckt alles aus.

denn ich in /dev /sda*; Tun
echo "$ ich"
Erledigt

Eine Zeile für die Schleife

Mit den bedeckten Grundlagen können wir jetzt für Schleifen zu einer einzigen Linie komprimieren. Grundsätzlich eliminieren wir die Neulisten aus dem gesamten für den Loop -Code aus dem gesamten Code. Wir können diese Schleifen auch direkt aus der Befehlszeile ausführen.

Lassen Sie uns das erste Beispiel komprimieren. Wenn wir alle neuen Zeilen beseitigen, sieht der Code so aus.

$ für i in 1… 5; Echo "Nummer: $ i"; Erledigt

Wie Sie sehen können, werden alle neuen Zeilen entfernt. Stattdessen werden diese Newlines durch Semikolons ersetzt (;).

Wir können dasselbe mit C-Stil für Schleifen tun.

$ für ((i = 1; i <= 5; i++)); do echo "number: $i"; done

Schauen Sie sich das folgende Beispiel an. Alle Konfigurationsdateien in „/etc."Wird als Sicherung in das Verzeichnis" ~/backup "kopiert.

$ für ich in /etc /*.conf; Mach CP $ i/home/viktor/backup; Erledigt

Für Schleife mit Bedingungen

In vielen Fällen enthält eine Schleife Bedingungen, um an verschiedenen Stellen der Wiederholung Entscheidungen zu treffen.

Hier druckt Folgendes für die Schleife alle gleichmäßigen Zahlen innerhalb eines festen Bereichs.

für i in 1… 10; Tun
wenn [$ ((i%2)) -Eq 0]; Dann
echo "$ ich sogar"
fi
Erledigt

Es ist möglich, diese gesamte Schleife in eine einzelne Linie auszudrücken. Ersetzen Sie die neue Linie genau wie zuvor durch Semikolons (;).

$ für i in 1… 10; tun, wenn [$ ((i%2)) -Eq 0]; dann wiederholt "$ ich"; fi; Erledigt

Es wird empfohlen, zuerst die Schleife mit ordnungsgemäßem Abstand aufzuschreiben. Sobald die Schleife ordnungsgemäß funktioniert, können wir sie sicher in eine einzelne Linie komprimieren.

Verschiedene Beispiele

Hier ist eine Handvoll einer Zeile für Loops als Referenz.

$ für i in 1 2 3 4 5; Echo "Nummer: $ i"; Erledigt
$ für i in CPU Motherboard RAM PSU GPU; Echo "Computer Teil: $ i"; Erledigt

Das nächste Beispiel wird eine unendliche Schleife haben.

$ für (;;)); wiederholt "bis unendlich!"; Erledigt

Letzter Gedanke

Dieser Leitfaden zeigt verschiedene effektive Einzeilen für Schleifenbeispiele. Es ist sehr einfach, eine Normalität für Schleife in eine Zeile zu verwandeln. Hoffentlich haben die Leser nach dem Üben dieser Beispiele eine gute Vorstellung davon, Bash für Schleife in einer Zeile zu verwenden.

Happy Computing!