Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ksh(1)

set(1)

sh(1)

shift(1)                                                           shift(1)

NAME
     shift - Die Werte der Stellungsparameter nach links verschieben

SYNTAX
     shift[ zahl]

BESCHREIBUNG
     Das in die Shell sh(1) bzw. ksh(1) eingebaute Kommando shift ver-
     schiebt die Werte der Stellungsparameter nach links. Wenn Sie shift
     ohne Argument aufrufen, sieht diese Verschiebung so aus:

     -  Der Shell-Parameter $0 bleibt unverändert.

     -  Der ursprüngliche Wert von $1 fällt heraus, auf diesen Wert können
        Sie nicht mehr zugreifen.

     -  Statt dessen erhält $1 den Wert von $2, $2 den Wert von $3, ..., $8
        den Wert von $9.

     -  Der Stellungsparameter $9 wird mit dem zehnten Aufruf-Argument ver-
        sorgt.

     -  $# wird um 1 erniedrigt.

     -  $* und $@ enthalten alle Aufruf-Argumente, beginnend mit dem neuen
        Wert von $1. Der ursprüngliche Wert von $1 ist herausgefallen.

     Die Shell bietet standardmäßig nur die Möglichkeit, mit den Stellungs-
     parametern die ersten 9 Aufruf-Argumente des Kommandos set bzw. einer
     Shell-Prozedur direkt anzusprechen. Mit shift können Sie diese Ein-
     schränkung umgehen, denn es verschiebt die Werte entsprechend weit
     nach links.

ARGUMENTE
     zahl  Eine positive ganze Zahl; shift wird zahl-mal ausgeführt. Der
           Stellungsparameter $1 erhält als Wert das (zahl+1)te Aufruf-
           Argument, usw.

           Wenn Sie zahl zu groß wählen, gibt shift eine Fehlermeldung aus,
           sobald für $1 kein Aufruf-Argument mehr übrig bleibt; d. h. $#
           ist gleich 0.

           zahl nicht angegeben:

           shift wird einmal ausgeführt.

           Wenn $1 bereits das letzte Aufruf-Argument enthält, so erhalten
           Sie beim nächsten Aufruf von shift eine Fehlermeldung.







Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

shift(1)                                                           shift(1)

FEHLERMELDUNG
     prozedur: cannot shift

     Diese Fehlermeldung erhalten Sie, wenn $# gleich 0 ist. Dem Stellungs-
     parameter $1 konnte also kein Wert zugewiesen werden.

INTERNATIONALE UMGEBUNG
     Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
     texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
     ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
     LANG nicht oder als leere Zeichenkette definiert, verhält sich das
     System so, als wäre es nicht internationalisiert.

     Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
     bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
     Bereich der Internationalisierung.

BEISPIELE
     Beispiel 1

     Innerhalb einer Shell-Prozedur soll das zehnte Aufruf-Argument ange-
     sprochen werden:

     .
     .
     arg1=$1
     shift
     arg10=$9
     .
     .
     .

     Die Variable arg1 enthält den ursprünglichen Wert von $1. So ist die-
     ser Wert auch nach shift noch verfügbar.

     Beispiel 2

     Der folgende Bildschirmdialog soll zeigen, wie sich bei shift der
     Inhalt der Shell-Parameter $1, $* und $# ändert:

     $ set 1 2 3 4 5 6 7 8 9 10 11 12
     $ echo $1
     1
     $ echo $#
     12
     $ echo $*
     1 2 3 4 5 6 7 8 9 10 11 12
     $ shift 6
     $ echo $1
     7
     $ echo $*
     7 8 9 10 11 12


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

shift(1)                                                           shift(1)

     $ echo $#
     6

HINWEISE
     Bei der Verwendung von shift können sich Abweichungen im Verhalten
     ergeben, je nachdem, welche Shell benutzt wird. Die möglichen Abwei-
     chungen sind nicht eigens beschrieben.

SIEHE AUCH
     ksh(1), set(1), sh(1).












































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026