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 8 Rund um die Ausführung von Scripts und Prozessen
  gp 8.1 Prozessprioritäten
  gp 8.2 Warten auf andere Prozesse
  gp 8.3 Hintergrundprozess wieder hervorholen
  gp 8.4 Hintergrundprozess schützen
  gp 8.5 Subshells
  gp 8.6 Mehrere Scripts verbinden und ausführen (Kommunikation zwischen Scripts)
    gp 8.6.1 Datenübergabe zwischen Scripts
    gp 8.6.2 Rückgabe von Daten an andere Scripts
    gp 8.6.3 Scripts synchronisieren
  gp 8.7 Jobverwaltung
  gp 8.8 Shellscripts zeitgesteuert ausführen
  gp 8.9 Startprozess- und Profildaten der Shell
    gp 8.9.1 Arten von Initialisierungsdateien
    gp 8.9.2 Ausführen von Profildateien beim Start einer Login-Shell
    gp 8.9.3 Ausführen von Profildateien beim Start einer Nicht-Login-Shell (Bash und Korn-Shell)
    gp 8.9.4 Zusammenfassung alle Profil- und Startup-Dateien
  gp 8.10 Ein Shellscript bei der Ausführung
    gp 8.10.1 Syntaxüberprüfung
    gp 8.10.2 Expansionen
    gp 8.10.3 Kommandos
  gp 8.11 Shellscripts optimieren


Rheinwerk Computing

8.5 Subshelltoptop

Zwar war schon häufig die Rede von einer Subshell, aber es wurde nie richtig darauf eingegangen, wie Sie explizit eine Subshell in Ihrem Script starten können. Die Syntax:

(
   kommando1
   ...
   kommando_n
)

oder auch als Einzeiler (aber dann bitte die Leerzeichen beachten):

( kommando1 ; ... ; kommando_n )

Eine Subshell erstellen Sie, wenn Sie Kommandos zwischen runden Klammern gruppieren. Hierbei startet das Script einfach eine neue Shell, welche die aktuelle Umgebung mitsamt den Variablen übernimmt, führt die Befehle aus und beendet sich dann bei Ausführung des letzten Kommandos wieder und kehrt zum Script zurück. Als Rückgabewert wird der Exit-Code des zuletzt ausgeführten Kommandos zurückgegeben. Die Variablen, die Sie in einer Subshell verändern oder hinzufügen, haben keine Auswirkungen auf die Variablen des laufenden Scripts. Sobald sich die Subshell also verändert, verlieren die Werte in der Subshell ihre Bedeutung und dem laufenden Script (bzw. der laufenden Shell) steht nach wie vor die Umgebung zur Verfügung, die vor dem Starten der Subshell vorlag. Diese Technik nutzt die Shell u. a. auch mit dem Here-Dokument aus.

Ein einfaches Beispiel:

# Name: subshell
a=1
b=2
c=3
echo "Im Script: a=$a; b=$b; c=$c"
# Eine Subshell starten
(
   echo "Subshell : a=$a; b=$b; c=$c"
   # Werte verändern
   a=3 ; b=6 ; c=9
   echo "Subshell : a=$a; b=$b; c=$c"
)
# Nach der Subshell wieder ...
echo "Im Script: a=$a; b=$b; c=$c"

Das Script bei der Ausführung:

you@host > ./subshell
Im Script: a=1; b=2; c=3
Subshell : a=1; b=2; c=3
Subshell : a=3; b=6; c=9
Im Script: a=1; b=2; c=3

Aber Achtung: Häufig wird eine Subshell, die zwischen runden Klammern steht, irrtümlicherweise mit den geschweiften Klammern gleichgestellt. Kommandos, die zwischen geschweiften Klammern stehen, werden als eine Gruppe zusammengefasst, wodurch Funktionen ja eigentlich erst ihren Sinn bekommen. Befehlsgruppen, die in geschweiften Klammern stehen, laufen in derselben Umgebung (also auch Shell) ab, in der auch das Script ausgeführt 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