Springe zum Hauptinhalt

Archiv
next up previous contents
Next: Shell-Variablen Up: Shell-Scripts Previous: Kommentare

Argumentübergabe beim Aufruf eines Shell-Scripts

cmdfile arg1 arg2 ... argn


Die Bezugnahme auf die Argumentwerte cmdfile (entspricht arg0 ), arg1 , arg2 ... argn erfolgt in cmdfile selbst über die speziellen Shell-Variablen $0, $1, $2 ... $n
(die Namen der Shell-Variablen sind 0, 1 usw.)

  • Beispiel:
    • Das ausführbare File lsdir enthalte die Zeile
      ls -l $1 | grep '^[Dd]'
      
    • So ergeben sich beispielweise folgende Aufrufmöglichkeiten:
      lsdir /usr     # Listen aller Verzeichnisse,
                     # die im Verzeichnis /usr enthalten sind
      
      lsdir .        # Listen aller Verzeichnisse im aktuellen Verzeichnis
      
      lsdir          # dto. ("leere Zeichenkette")
      
    • allgemein:
      lsdir [verzeichnis]
      
    • Bemerkung: Behandlung mehrerer Verzeichnisse kommt später
  • Mit $0 kann auf den Namen des Kommandofiles zugegriffen werden. Die Angabe $* umfaßt alle Argumente arg1 bis argn ; sie wird angewendet, wenn die genaue Anzahl der Argumente nicht bekannt ist bzw. wenn n den Wert 9 übersteigt.
    • Bemerkung: Hinweis auf shift-Kommando (später)
  • Mit der speziellen Shell-Variablen $# kann auf die Anzahl der beim Aufruf übergebenen Argumente (arg1 bis argn ) Bezug genommen werden
    • Beispiel: Shell-Script argecho
      echo -n  Es wurden $# Argumente uebergeben
      echo : $*
      
      Aufruf:
      $ argecho rot gelb blau
      Es wurden 3 Argumente uebergeben: rot gelb blau
      $ argecho
      Es wurden 0 Argumente uebergeben