Umformatiert

This commit is contained in:
rschaten
2004-12-10 14:38:03 +00:00
parent 15af99f29e
commit 464f0bcf77
6 changed files with 417 additions and 333 deletions

View File

@@ -57,8 +57,7 @@ z
Folgendes Skript funktioniert nicht:
\footnotesize
\begin{listing}[2]{1}
\begin{lstlisting}
#!/bin/sh
count=0
cat /etc/passwd | while read i; do
@@ -69,8 +68,7 @@ cat /etc/passwd | while read i; do
fi
done
echo Es sind $count Benutzer mit einer ID kleiner 100 eingetragen
\end{listing}
\normalsize
\end{lstlisting}
Was ist passiert?
@@ -91,8 +89,7 @@ praktisch nur lokal zur Verf
Neben der Methode in \ref{daten_hochreichen} bietet sich hier eine viel
einfachere L<>sung an:
\footnotesize
\begin{listing}[2]{1}
\begin{lstlisting}
#!/bin/sh
count=0
while read i; do
@@ -103,8 +100,7 @@ while read i; do
fi
done < /etc/passwd
echo Es sind $count Benutzer mit einer ID kleiner 100 eingetragen
\end{listing}
\normalsize
\end{lstlisting}
Hier befindet sich die Schleife nicht in einer Pipe, daher wird sie auch nicht
in einer Subshell ausgef<65>hrt. Man kann auf das \texttt{cat}-Kommando verzichten
@@ -124,7 +120,7 @@ enthalten.
Der erste Versuch an der Stelle wird etwas in der Form
\texttt{grep }\textit{wichtig datei.txt}\texttt{ > }\textit{datei.txt}
\lstinline|grep wichtig datei.txt > datei.txt|
sein. Das kann funktionieren, es kann aber auch in die sprichw<68>rtliche Hose
gehen. Das Problem an der Stelle ist, da<64> die Datei an der Stelle gleichzeitig
@@ -136,15 +132,13 @@ Dateisystem entfernt, wenn kein Deskriptor mehr auf sie zeigt. Dann kann aus
dem gerade angelegten Deskriptor gelesen werden, w<>hrend eine neue Datei unter
dem alten Namen angelegt wird:
\footnotesize
\begin{listing}[2]{1}
\begin{lstlisting}
#!/bin/sh
FILE=datei.txt
exec 3< "$FILE"
rm "$FILE"
grep "wichtig" <&3 > "$FILE"
\end{listing}
\normalsize
\end{lstlisting}
Allerdings sollte man bei dieser Methode beachten, da<64> man im Falle eines
Fehlers die Quelldaten verliert, da die Datei ja bereits gel<65>scht wurde.