Viele Neuerungen
This commit is contained in:
@@ -132,8 +132,10 @@ M```+$P$`FIP8````!&=!34$``+&.?/M1DP```"!C2%)-``!Z)0``@(,``/G_
|
||||
\end{lstlisting}
|
||||
|
||||
Nach einem Hinweis wird also das Here-Dokument als Eingabe f<>r das Tool
|
||||
\texttt{uudecode} benutzt. Erstellt wurde das Dokument mit einer Zeile in der
|
||||
Form \texttt{uuencode icon.png icon.png}.
|
||||
\texttt{uudecode} benutzt. Erstellt wurde das Dokument mit einer Zeile der
|
||||
folgenden Form:
|
||||
|
||||
\lstinline|uuencode icon.png icon.png|
|
||||
|
||||
Wie man sieht ist der Name der Datei in dem Here-Dokument enthalten. Die Datei
|
||||
wird entpackt und unter diesem gespeichert. In der `realen Welt' mu<6D> an der
|
||||
@@ -172,11 +174,11 @@ werden mu
|
||||
Dabei gibt es zwei Methoden, die angeh<65>ngte Datei wieder abzuschneiden. Die
|
||||
einfachere Methode funktioniert mit \texttt{tail}:
|
||||
|
||||
\texttt{tail -n +227 \$0 > icon.png}
|
||||
\lstinline|tail -n +227 $0 > icon.png|
|
||||
|
||||
Dieses Beispiel geht davon aus, da<64> das Skript selbst 227 Zeilen umfa<66>t. Die
|
||||
bin<EFBFBD>re Datei wurde mit einem Kommando wie \texttt{cat icon.png >> skript.sh} an
|
||||
das Skript angeh<65>ngt.
|
||||
bin<EFBFBD>re Datei wurde mit einem Kommando wie \lstinline|cat icon.png >> skript.sh|
|
||||
an das Skript angeh<65>ngt.
|
||||
|
||||
F<EFBFBD>r die etwas kompliziertere Variante mu<6D> die L<>nge des eigentlichen
|
||||
Skript-Teiles genau angepa<70>t werden. Wenn das Skript beispielsweise etwa 5,5kB
|
||||
@@ -184,7 +186,7 @@ lang ist, m
|
||||
werden, damit sich eine L<>nge von 6kB ergibt. Dann kann das Anh<6E>ngsel mit dem
|
||||
Kommando \texttt{dd} in der folgenden Form abgeschnitten werden:
|
||||
|
||||
\texttt{dd bs=1024 if=\$0 of=icon.png skip=6}
|
||||
\lstinline|dd bs=1024 if=$0 of=icon.png skip=6|
|
||||
|
||||
Das Kommando kopiert Daten aus einer Eingabe- in eine Ausgabedatei. Im
|
||||
einzelnen wird hier eine Blockgr<67><72>e (blocksize, bs) von 1024 Bytes festgelegt.
|
||||
@@ -248,8 +250,10 @@ Bei einfachen Zahlenwerten k
|
||||
Komplexere Informationen k<>nnen in eine tempor<6F>re Datei geschrieben werden, die
|
||||
danach geparst werden m<><6D>te. Wenn die Informationen in Zeilen der Form
|
||||
\lstinline|VARIABLE="Wert"| gespeichert werden, kann die Datei einfach mittels
|
||||
\texttt{source} (Abschnitt \ref{source}) oder einem Konstrukt der Art
|
||||
\texttt{eval `cat tempfile`} gelesen werden.
|
||||
\texttt{source} (Abschnitt \ref{source}) oder einem Konstrukt der folgenden Art
|
||||
gelesen werden:
|
||||
|
||||
\lstinline|eval `cat tempfile`|
|
||||
|
||||
Und genau mit dieser <20>berlegung kommen wir zu einem eleganten~--~wenn auch
|
||||
nicht ganz einfachen~--~Trick.
|
||||
|
Reference in New Issue
Block a user