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ürzen um
|
|
die Tipparbeit zu vermindern, oder um sich das Merken von vielen Parametern zu
|
|
ersparen. Diese Aufgabe überläß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ührt werden. Es stehen zwar auch einige
|
|
einfache Mechanismen zur Verzweigung zu Verfü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ü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ändig ausgeführt, seine Ausgabe in eine temporäre Datei
|
|
geschrieben und danach als Eingabe für das zweite Kommando benutzt. Daß so ein
|
|
Verhalten unter Umstä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ügung, die eine
|
|
Programmiersprache auszeichnen (Funktionen, Schleifen, Fallunterscheidungen,
|
|
Variablen, etc).
|
|
|
|
\index{DOS|)}\index{Batchdateien|)}
|