35 lines
1.8 KiB
TeX
35 lines
1.8 KiB
TeX
|
\chapter{Wo sind Unterschiede zu DOS-Batchdateien?}\index{DOS|(textbf}\index{Batchdateien|(textbf}
|
|||
|
|
|||
|
Unter DOS werden Batchdateien oft dazu benutzt, lange Kommandos abzuk<75>rzen um
|
|||
|
die Tipparbeit zu vermindern, oder um sich das Merken von vielen Parametern zu
|
|||
|
ersparen. Diese Aufgabe <20>berl<72><6C>t man unter Unix am besten den
|
|||
|
Shell-Aliasen\index{Aliase} oder Shell-Funktionen.\bigskip
|
|||
|
|
|||
|
Shell-Skripte k<>nnen viel mehr als Batchdateien.\bigskip
|
|||
|
|
|||
|
Wie der Name schon sagt, sind Batchdateien im Wesentlichen nur ein `Stapel' von
|
|||
|
Anweisungen, die nacheinander ausgef<65>hrt werden. Es stehen zwar auch einige
|
|||
|
einfache Mechanismen zur Verzweigung zu Verf<72>gung, aber das entspricht bei
|
|||
|
weitem nicht den M<>glichkeiten, die man an der Shell hat.
|
|||
|
|
|||
|
Interaktive Batchdateien sind unter DOS nicht m<>glich, in der Shell steht dazu
|
|||
|
das \texttt{read}-Kommando zur Verf<72>gung. Ein Mechanismus wie die
|
|||
|
Befehls-Substitution\footnote{Verarbeitung der Ausgabe von Kommandos mittels
|
|||
|
Backticks (siehe unter Befehlsformen - \ref{befehlsformen})} fehlt v<>llig.
|
|||
|
|
|||
|
Ein weiteres interessantes Merkmal ist die Behandlung von Pipes. Es ist unter
|
|||
|
DOS zwar m<>glich, zwei Kommandos durch eine Pipe zu verbinden. Aber da es unter
|
|||
|
DOS keine M<>glichkeit gibt, zwei Kommandos parallel laufen zu lassen, wird das
|
|||
|
erste Kommando vollst<73>ndig ausgef<65>hrt, seine Ausgabe in eine tempor<6F>re Datei
|
|||
|
geschrieben und danach als Eingabe f<>r das zweite Kommando benutzt. Da<44> so ein
|
|||
|
Verhalten unter Umst<73>nden schnell zu einer vollen Festplatte f<>hren kann, sieht
|
|||
|
man bei dem Beispiel, in dem eine CD kopiert werden soll (Kapitel \ref{cdrdao},
|
|||
|
Seite \pageref{cdrdao}).
|
|||
|
|
|||
|
Shell-Skripte kann man dagegen eher mit einer `richtigen' Programmiersprache
|
|||
|
vergleichen. Es stehen alle Konstrukte zur Verf<72>gung, die eine
|
|||
|
Programmiersprache auszeichnen (Funktionen, Schleifen, Fallunterscheidungen,
|
|||
|
Variablen, etc).
|
|||
|
|
|||
|
\index{DOS|)}\index{Batchdateien|)}
|