Iterationen

Eine For-Schleife läuft solange, bis ihr die Argumente ausgehen. Die stammen in vielen Fällen aus einer Subshell, in selteneren Fällen aus einer echten Liste von Werten. Die Anweisung do leitet den Anweisungsteil ein, mit done schließen Sie diesen ab (Listing 5).

Listing 5

for Variable in Argumente; doAnweisungen
done

Bei der Arbeit mit der Schleife dürfen Sie Positionsparameter verwenden. Diese geben Sie als Variable $@ an (Listing 6). Alternativ geben Sie feste Werte für die Argumente vor. Diese fügen Sie einfach nach dem in an (Listing 7).

Listing 6

#!/bin/sh
for i in "$@"; do
  echo $i
done

Listing 7

#!/bin/bash
for i in 1 2 3; do
  echo $i
done

Eine Subshell liefert solange Argumente, bis sie abgearbeitet wurde. Sie können auf diese Weise die Ausgaben beliebiger Befehle auswerten, müssen aber penibel auf den Feldtrenner (Standard: Leerzeichen) achten. So versteht die Shell die Zeichenkette Hans Schmidt als zwei Werte. Listing 8 demonstriert eine Suche nach allen Dateien, welche den String log im Namen führen.

Listing 8

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

Die Bash bietet zusätzlich einen Zähler für Schleifen. Damit geben Sie exakt einen numerischen Bereich vor. Der Befehl seq erlaubt es dabei auf einfache Weise, eine solche Reihe zu erstellen. Geben Sie für den Befehl nur den Endwert an, arbeitet er in Einer-Schritten. Geben Sie sowohl Start- als auch Endwert an, erhalten Sie ebenso Einer-Schritte. Nutzen Sie das Kommando in der Form seq Start Schrittweite Endwert, gestalten Sie die Zählweise noch feiner. Sie finden beide Methoden in Listing 9.

Listing 9

#!/bin/bash
echo "Schleife mit Zähler"
for ((i=0; i<5; i++)); do
  echo $i
done
echo "Schleife mit seq"
for i in $(seq 4); do
  echo $i
done

While-Schleife

Eine While-Schleife läuft solange, wie ein Kommando oder ein Block von Anweisungen erfolgreich arbeitet und den Exit-Code 0 liefert. Den Teil mit den Befehlen leiten Sie mit do ein und schließen ihn mit done ab. Steht kein explizites Kommando bereit, nutzen Sie den Befehl true, der stets den Exit-Code 0 ausgibt. Auf diese Weise erzeugen Sie eine Endlosschleife. Die Schleife in Listing 10 läuft, solange der Wert der Variablen $a größer ist als der von $b.

Listing 10

#!/bin/sh
a=3
b=0
while [ $a -gt $b ]; do
  echo $b
  b=$(echo $b + 1 | bc)
done

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Kreislauf
    Schleifen ermöglichen das mehrmalige Abarbeiten von Anweisungen. Dabei kann das begrenzende Ereignis sowohl außerhalb als auch innerhalb der Schleife liegen.
  • Klar signalisiert
    Statt Prozesse einfach abzuschießen, fangen Profis deren Kommunikation geschickt ab und lenken mit den passenden Signalen die Arbeit des Rechners gekonnt in die gewünschte Richtung.
  • Mehr Komfort
    Von einfachen Abfragen bis hin zu komplexen Menüs: Mit dem Toolkit Dialog bauen Sie eine grafische Oberfläche für Shell-Skripte, die oft nicht mehr als eine zusätzliche Zeile brauchen.
  • Bash-Skripte sind Programme
    Wer regelmäßig mit der Shell arbeitet, wird leicht zum Programmierer: Schreiben Sie mehrere Shell-Befehle in eine Textdatei und machen diese ausführbar, haben Sie schon Ihr erstes Shell-Skript entwickelt. Die Shell bietet als Programmiersprache aber noch viel mehr.
  • Teil 5: Kontrollstrukturen die Zweite
    Nach der Einführung in die Kontrollstrukturen und Vorstellung von einfachen Vergleichsmöglichkeiten im letzten Teil beschäftigen wir uns diesmal mit Reihenvergleichen, Schleifen, Tastatureingaben und kleinen Auswahlmenüs.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...