Endlosschleifen

Benötigen Sie von vornherein eine Endlosschleife, die aus dem Schleifenkörper heraus gesteuert wird, setzen Sie mit while die Bedingung true ein, mit until als Gegenstück false. Die beiden Hilfsprogramme ersetzen die einleitende Bedingung und geben nur einen Exitcode aus: true 0 und false 1.

Endlosschleifen setzen Sie beispielsweise in Menüsteuerungen oder für Überwachungsaufgaben ein. Das Listing 7 zeigt Ihnen den Einsatz in beiden Schleifentypen. Im Vorgriff zu den folgenden Punkten der Schleifensteuerung finden Sie auch bereits break und exit im Einsatz.

Listing 7

$$nonumber
#!/bin/sh
echo "While-Schleife"
k=0
while true; do
  k=$(echo $k + 1 | bc)
  echo $k
  # Schleifendurchlauf
  # mit 'break' beenden
  if [ $k -eq 5 ]; then
    break
  fi
done
echo "Until-Schleife"
k=0
until false; do
  k=$(echo $k + 1 | bc)
  echo $k
  # Schleife und Programm
  # beenden mit 'exit'
  if [ $k -eq 5 ]; then
    exit
  fi
done

Stop and go

Eine Schleife brechen Sie bei Bedarf mittels break ab, wie das While-Beispiel in Listing 7 demonstriert. In verschachtelten Schleifen dürfen Sie mehrere Ebenen überspringen, indem Sie zusätzlich die Ebenenzahl angeben.

Um nicht nur die Schleifenausführung abzubrechen, sondern das gesamte Skript, greifen Sie zu exit, wie im Until-Beispiel aus Listing 7. Optional geben Sie dem Befehl noch einen numerischen Exit-Code mit auf den Weg (exit 3), den Sie dann auf der Kommandozeile auswerten können. Zur Erinnerung: Den Exit-Code fragen Sie unmittelbar nach dem Kommando durch echo $? ab.

Der Befehl continue springt ohne Abarbeiten eventueller weiterer Befehle ans Schleifenende und startet einen neuen Schleifendurchlauf. Innerhalb verschachtelter Schleifen dürfen Sie wiederum durch mehrere Ebenen wechseln, indem Sie die Zahl der Ebenensprünge angeben. Die Zählung (eigene Schleife) beginnt dabei mit 1. Ohne diese Angabe wirkt continue stets in der aktuellen Schleife.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 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

  • Verschlungene Pfade
    Mit Schleifen, Fallunterscheidungen und Funktionen programmieren Sie komplexe Skripte auf einfache und elegante Weise.
  • 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.
  • 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.
  • Scripted Reality
    Aus den Shell-Tipps und dem Guru-Training kennen Sie viele nützliche Kommandozeilentools. Die können Sie in kleinen Shell-Skripten zu leistungsfähigen Miniprogrammen bündeln. Im einfachsten Fall lassen Sie damit mehrere Befehle automatisch nacheinander ablaufen, doch Skripte haben noch mehr zu bieten.
  • Erste Schritte mit Bash-Skripten
    Das Programmieren von Shell-Skripten ist keine Hexerei. Schon mit wenigen Grundkenntnissen sparen Sie durch das Automatisieren alltäglicher Aufgaben viel Zeit.
Kommentare

Infos zur Publikation

LU 02/2018: PAKETE VERWALTEN

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

Wifikarte verhindert Bootvorgang
Maik Kühn, 21.01.2018 22:23, 0 Antworten
iwlwifi-7265D -26 failed to load iwlwifi-7265D -25 failed to load iwlwifi-7265D -24 failed to l...
sharklinux
Gerd-Peter Behrendt, 18.01.2018 23:58, 1 Antworten
Hallo zusammen, ich habe sharklinux von der DVD Installiert. 2x, jedesmal nach dem Reboot ist di...
Anfänger sucht Ratschläge
Alucard Nosferatu, 18.01.2018 21:56, 3 Antworten
Guten Tag, meine Wenigkeit würde gerne auf einer meiner Festplatten von meinen Feldrechnern e...
Suchprogramm
Heiko Taeuber, 17.01.2018 21:12, 1 Antworten
Hallo liebe Community, keine Ahnung ob dieses Thema hier schon einmal gepostet wurde. Ich hab...
Linux Mint als Zweitsystem
Wolfgang Robert Luhn, 13.01.2018 19:28, 4 Antworten
Wer kann mir helfen??? Habe einen neuen Laptop mit vorinstaliertem Windows 10 gekauft. Möchte g...