Shells: Tutorial


* Einführung * Installation * Paketmanager * Grundlagen * Shells * Entwicklung * KDE * Skriptsprachen * AWK * PHP * Perl * Apache * Veranstaltungen * Schulungen * Bücher * Netzwerk * OpenOffice * OpenSource * Samba

Shells


© <a href="http://www.fotolia.de/p/29003">Ljupco Smokovski</a> - FOTOLIA
Home
Erste Schritte mit der Bourne-Shell
Dateien zeilenweise zusammenfügen
Head or Tail
Schleifen und Zählen
Shell-Variablen
Pipes
Sortieren von Daten
Wer sucht der findet!
Praktische Shell-Skripte
Rechtschreibung
Schleifen und elegant Zählen
Texte formatieren mit fmt und fold
Umlenkung der Ein- und der Ausgaben
Klammer-Erweiterung
Verknüpfen von Textdateien mittels Schlüsselfeldern
Mit freundlicher Unterstützung von:

Linux-Kurse und Seminare Linux Kurse
Veranstalter des
Linux-Tag
am Bodensee
2007 und 2008

Kontakt
Haftung
Impressum
Problem Hilfe Startseite


Schleifen und elegant Zählen

Zählen können ist manchmal nicht so einfach. Zumindest nicht in der Bourne oder der Bash-Shell.

#!/bin/sh
#
# Zählen von 1 bis 5
counter=1
while [ $counter -le 5 ]
do
echo $counter
counter=`expr $counter + 1`
done
Dieses Programm ist umständlich und ziemlich langsam. Der Umständliche Weg de Zähler (counter) mit Hilfe des expr-Kommandos zu erhöhen, ist notwendig, da die Bourne-Shell keine effiziente Zahlenverarbeitung integriert hat.

Bedeutend einfache und eleganter lässt sich dieses Problem mit dem Kommando seq lösen. Viele werden dieses Kommando auch unter dem Namen jot kennen, dass in den 80er Jahren an der Universität von Kalifonien entwickelt worden war.

Der Aufruf
seq 5
liefert die Zahlen von 1 bis 5.

Gibt man zwei Argumente an, wird der erste als Startwerte genommen, um bis zum zweiten (in Einerschritten) zu zählen.

Die allgemeine Syntax  lautet:

seq [Optionen]Startwert Schrittweite Endwert

Der Aufruf von

seq 12 6 120
liefert diedurch 6 teilbaren Zahlen zwischen 12 und 120.

Will man also innerhalb eines Shell-Skriptes mit einer Zählschleife realisieren bietet sich das seq-Kommando an, um das Eingangsbeispiel eleganter zu gestalten:

#!/bin/sh
#
# Zählen von 1 bis 5
for counter in `seq 5`
do
echo $counter
done



© Copyright 2007 - 2010, Bernd Klein mit freundlicher Unterstützung von Bodenseo, Linux-Kurse und Schulungen,
Foto linke Seite (Mann mit Strick und Colt): Foto: © Ljupco Smokovski, fotolia 984022