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.6 Argumente jenseits von $downtop

Bisher wurde nur die Möglichkeit behandelt, wie neun Argumente in der Kommandozeile ausgewertet werden können. Eine simple Technik, die Ihnen in allen Shells zur Verfügung steht, ist der Befehl shift, welchen Sie ja bereits kennen gelernt haben (siehe auch das Script-Beispiel »ashifter2« aus Abschnitt 3.4).

Neben shift gibt es noch zwei weitere gängige Methoden, mit den Variablen $* oder $@ zu arbeiten. Auch hierbei können Sie in einer for-Schleife sämtliche Argumente abgrasen, egal, wie viele Argumente vorhanden sind. Wenn Sie sich fragen, wozu das gut sein soll, so viele Argumente zu behandeln, kann ich Ihnen als Stichwort »Metazeichen« oder »Datei-Expansion« nennen. Als Beispiel folgendes Script:

# Beliebig viele Argumente in der Kommandozeile auswerten
# Name: aunlimited
i=1
for argument in $*
   do
      echo "$i. Argument : $argument"
      i=`expr $i + 1`
   done

Das Script bei der Ausführung:

you@host > ./aunlimited A B C D E F G H I J K
1. Argument  : A
2. Argument  : B
3. Argument  : C
4. Argument  : D
5. Argument  : E
6. Argument  : F
7. Argument  : G
8. Argument  : H
9. Argument  : I
10. Argument : J
11. Argument : K

Das Script arbeitet zwar jetzt beliebig viele Argumente ab, aber es wurde immer noch nicht demonstriert, wofür so etwas gut sein soll. Rufen Sie doch das Script nochmals folgendermaßen auf:

you@host > ./aunlimited /usr/include/*.h
1. Argument : /usr/include/af_vfs.h
2. Argument : /usr/include/aio.h
3. Argument : /usr/include/aliases.h
4. Argument : /usr/include/alloca.h
5. Argument : /usr/include/ansidecl.h
...
...
235. Argument : /usr/include/xlocale.h
236. Argument : /usr/include/xmi.h
237. Argument : /usr/include/zconf.h
238. Argument : /usr/include/zlib.h
239. Argument : /usr/include/zutil.h

Das dürfte Ihre Fragen nach dem Sinn beantworten. Durch die Datei-Expansion wurden aus einem Argument auf einmal 239 Argumente.


Rheinwerk Computing

3.6.1 Beliebig viele Argumente (Bash und Korn-Shell only)  toptop

In der Bash und der Korn-Shell steht Ihnen noch eine weitere Alternative zur Verfügung, um auf ein Element jenseits von neun zurückzugreifen. Hierbei können Sie alles wie gehabt nutzen (also $1, $2 ... $9), nur dass Sie nach der neunten Position den Wert in geschweifte Klammern (${n}) setzen müssen. Wollen Sie bspw. auf das 20. Argument zurückgreifen, gehen Sie folgendermaßen vor:

# Argument 20
echo "Das 20. Argument: ${20}"
# Argument 99
echo ${99}


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