Subshell
Die ksh kann Scripts und Kommandos in einer Subshell durchführen.
Diese Subshell hat ein eigenes Environment.
* Änderungen im Environment der Subshell haben keine Wirkung in der aufrufenden Shell
* Funktionen werden nicht an die Subshell übergeben, es sei den sie sind
in der Environmentfile oder mit typeset -fx definiert
Die ksh erzeugt eine Subshell für:
* Scripts die über ihren Namen oder ksh name aufgerufen werden
* Command-Substitution $(...)
* Anweisungen die durch runde Klammern zusammengefasst werden
(cd xy ; pwd; ls -l ) ; pwd
* Pipes; (jedes Element mit Ausnahme des letzten Elements wird in einer
Subshell durchgeführt
* Background-Prozesse
* Co-Prozesse ( .... ) |&
Für die Subshell können gemeinsam I/O-Umleitungen vorgenommen werden
( ) < inp_file > out_file
Die folgenden Kommandos werden nicht in einer Subshell ausgeführt:
* Dot-Scripts . script
* Built-in Commands
* Functions
Performance:
$(< file) ist schneller als $(cat file) oder `cat file`