Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 << zurück
Shell-Programmierung von Jürgen Wolf
Einführung, Praxis, Referenz
Buch: Shell-Programmierung

Shell-Programmierung
782 S., mit CD, 44,90 Euro
Rheinwerk Computing
ISBN 3-89842-683-1
gp Kapitel 3 Parameter und Argumente
  gp 3.1 Einführung
  gp 3.2 Kommandozeilenparameter $1 bis $9
  gp 3.3 Besondere Parameter
    gp 3.3.1 Die Variable $*
    gp 3.3.2 Die Variable $@
    gp 3.3.3 Die Variable $#
  gp 3.4 Der Befehl shift
  gp 3.5 Argumente und Leerzeichen
  gp 3.6 Argumente jenseits von $9
    gp 3.6.1 Beliebig viele Argumente (Bash und Korn-Shell only)
  gp 3.7 Argumente setzen mit set und Kommando-Substitution
  gp 3.8 getopts – Kommandozeilenoptionen auswerten
  gp 3.9 Vorgabewerte für Variablen


Rheinwerk Computing

3.4 Der Befehl shiftoptop

Mit shift können Sie die Positionsparameter von $1 bis $n jeweils um eine Stelle nach links verschieben. So können Sie die Argumente aus der Liste, die für weitere Verarbeitungsschritte nicht mehr benötigt werden, entfernen. Hier die Syntax zu shift:

shift [n]

Setzen Sie shift (ohne weitere Argumente) ein, wird bspw. der Inhalt von $2 nach $1 übertragen. Befand sich in $3 ein Inhalt, so entspricht dieser nun dem Inhalt von $2. Es geht immer der erste Wert ($1) des Positionsparameters verloren. Sie »schneiden« quasi die Argumente der Kommandozeile von links nach rechts ab, sodass nacheinander alle Argumente zwangsläufig in $1 landen. Geben Sie hingegen bei shift für n eine ganze Zahl an, so wird nicht um eine, sondern um n Anzahl von Stellen geschoben. Natürlich sind durch einen Aufruf von shift auch die Variablen $*, $@ und $# betroffen. $* und $@ werden um einige Zeichen erleichtert und $# wird um den Wert eins dekrementiert.

Eine solche Verarbeitung wird recht gern verwendet, wenn bei Argumenten optionale Parameter angegeben werden dürfen, die sich bspw. irgendwo in der Parameterliste befinden. Man kann mit shift dann einfach an die Position der Parameterliste verschieben.

Hierzu ein Script, welches shift bei seiner Ausführung demonstriert:

# Demonstriert das Kommando shift
# Name: ashifter
echo "Argumente (Anzahl)  : $* ($#)"
echo "Argument \$1        : $1"
shift
echo "Argumente (Anzahl)  : $* ($#)"
echo "Argument \$1        : $1"
shift
echo "Argumente (Anzahl)  : $* ($#)"
echo "Argument \$1        : $1"
shift

Das Script bei der Ausführung:

you@host > ./ashifter ein paar Argumente gefällig
Argumente (Anzahl) : ein paar Argumente gefällig (4)
Argument $1        : ein
Argumente (Anzahl) : paar Argumente gefällig (3)
Argument $1        : paar
Argumente (Anzahl) : Argumente gefällig (2)
Argument $1        : Argumente

Sicherlich erscheint Ihnen das Ganze nicht sonderlich elegant oder sinnvoll, aber bspw. in Schleifen eingesetzt, können Sie hierbei hervorragend alle Argumente der Kommandozeile zur Verarbeitung von Optionen heranziehen. Als Beispiel ein kurzer theoretischer Code-Ausschnitt, wie so etwas in der Praxis realisiert werden kann:

# Demonstriert das Kommando shift in einer Schleife
# Name: ashifter2
while [ $# -ne 0 ]  # ne = not equal
do
    # Tue was mit dem 1. Parameter
    # Hier einfach eine Ausgabe ...
    echo $1     # immer 1. Parameter verarbeiten
    shift       # weiterschieben ...
done

Das Beispiel bei der Ausführung:

you@host > ./ashifter2 wieder ein paar Argumente
wieder
ein
paar
Argumente

Auch hier wurde mit while wieder auf ein Schleifen-Konstrukt zurückgegriffen, dessen Verwendung erst in Kapitel 4, Kontrollstrukturen, erläutert wird.



Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

 << zurück
  
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Shell-Programmierung
Shell-Programmierung
bestellen
 Buchtipps
Zum Rheinwerk-Shop: Shell-Programmierung






 Shell-Programmierung


Zum Rheinwerk-Shop: Linux-Server






 Linux-Server


Zum Rheinwerk-Shop: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Rheinwerk-Shop: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2005
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern