Klammer-Expansion zugefgt

This commit is contained in:
rschaten
2001-09-25 17:48:00 +00:00
parent 4a00e0290b
commit 90a49f0f52
2 changed files with 51 additions and 8 deletions

View File

@ -0,0 +1,23 @@
\begin{longtable}{|X l|}
% KILLED & LINE!!!! \kill
\hline
\endfirsthead
\endhead
\endfoot
\hline
\endlastfoot
\multicolumn{2}{|X|}{\texttt{\$ mkdir /usr/local/src/bash/\{old,new,dist,bugs\}}} \\
\multicolumn{2}{|X|}{Erzeugt die Verzeichnisse} \\
\multicolumn{2}{|X|}{\textit{/usr/local/src/bash/old}} \\
\multicolumn{2}{|X|}{\textit{/usr/local/src/bash/new}} \\
\multicolumn{2}{|X|}{\textit{/usr/local/src/bash/dist}} \\
\multicolumn{2}{|X|}{\textit{/usr/local/src/bash/bugs}} \\
\multicolumn{2}{|X|}{\STRUT\texttt{\$ chown root /usr/\{ucb/\{ex,edit\},lib/\{ex?.?*,how\b{ }ex\}\}}} \\
\multicolumn{2}{|X|}{Weist die folgenden Dateien / Verzeichnisse dem Benutzer root zu:} \\
\multicolumn{2}{|X|}{\textit{/usr/ucb/ex}} \\
\multicolumn{2}{|X|}{\textit{/usr/ucb/edit}} \\
\multicolumn{2}{|X|}{\textit{/usr/lib/ex?.?*}} \\
\multicolumn{2}{|X|}{\textit{/usr/lib/how\b{ }ex}} \\
\multicolumn{2}{|X|}{Dabei wird \textit{/usr/lib/ex?.?*} noch weiter expandiert.} \\
\end{longtable}

View File

@ -170,14 +170,6 @@ das Suchmuster \texttt{.*}.
\index{Meta-Zeichen|)}
\section{Klammer-Expansion}
man bash
/Brace Expansion
TODO!!!
\section{Mustererkennung}\index{Mustererkennung|(textbf}\label{mustererkennung}
\index{ed=\texttt{ed}|(textbf}\index{ex=\texttt{ex}|(textbf}\index{vi=\texttt{vi}|(textbf}\index{sed=\texttt{sed}|(textbf}\index{awk=\texttt{awk}|(textbf}\index{grep=\texttt{grep}|(textbf}\index{egrep=\texttt{egrep}|(textbf}
\index{*=\texttt{*}|(textbf}\index{.=\texttt{.}|(textbf}\index{\^=\texttt{\^}|(textbf}\index{\$=\texttt{\$}|(textbf}\index{Backslash|(textbf}\index{[ ]=\texttt{[ ]}|(textbf}\index{\textbackslash( \textbackslash)=\texttt{\textbackslash( \textbackslash)}|(textbf}\index{\textbackslash\{ \textbackslash\}=\texttt{\textbackslash\{ \textbackslash\}}|(textbf}\index{\textbackslash< \textbackslash>=\texttt{\textbackslash< \textbackslash>}|(textbf}\index{+=\texttt{+}|(textbf}\index{?=\texttt{?}|(textbf}\index{|=\texttt{|}|(textbf}\index{( )=\texttt{( )}|(textbf}\index{Regul<EFBFBD>rer Ausdruck|(textbf}
@ -226,6 +218,34 @@ Bei einigen Tools (\texttt{ex}, \texttt{sed} und \texttt{ed}) werden zwei Muster
\index{Mustererkennung|)}
\section{Klammer-Expansion\label{klammerexpansion}\index{Klammer-Expansion|(textbf}\index{Brace Expansion|see{Klammer-Expansion}}}
Dieser Mechanismus ist sehr praktisch, aber nur wenigen Programmierern bekannt.
Er steht nicht in jeder Shell zur Verf<72>gung.
<EFBFBD>ber die Klammer-Expansion (Brace Expansion) k<>nnen automatisch Strings
generiert werden. Dabei wird ein Muster angegeben, nach dem neue Strings
aufgebaut werden. Dieses Muster besteht aus einem Prefix, der allen erzeugten
Strings vorangestellt wird, und einer in geschweifte Klammern eingebundenen und
durch Komma getrennten Menge von String-Teilen. Dieses Konstrukt expandiert zu
mehreren, durch Leerzeichen getrennten Strings, indem s<>mtliche m<>glichen
Permutationen generiert werden.
Die durch die Klammern angegebenen Mengen k<>nnen auch verschachtelt werden.
Dabei werden die Klammern von links nach rechts aufgel<65>st. Die Ergebnisse
werden nicht sortiert, sondern in der Reihenfolge ihrer Erstellung
zur<EFBFBD>ckgegeben werden.
Die Expansion von Klammern erfolgt vor der Behandlung aller anderen
Ersetzungen. Auch eventuell vorhandenen Sonderzeichen bleiben in dem
expandierten Text erhalten. So lassen sich auch Variablen durch diese Technik
erzeugen.
\medskip\emph{Beispiele:}\nopagebreak
\LTXtable{\textwidth}{tab_beisp_klammerexpansion.tex}
\index{Klammer-Expansion|)}
\section{Programmablaufkontrolle}
Bei der Shell-Programmierung verf<72>gt man <20>ber <20>hnliche Konstrukte wie bei anderen Programmiersprachen, um den Ablauf des Programms zu steuern. Dazu geh<65>ren Funktionsaufrufe, Schleifen, Fallunterscheidungen und dergleichen.\nopagebreak