Viele grosse Aenderungen
This commit is contained in:
@@ -52,7 +52,12 @@ ausf
|
||||
|
||||
Dann kann das Skript gestartet werden. Da sich aus Sicherheitsgründen auf den meisten Systemen das aktuelle Verzeichnis nicht im Pfad des Benutzers befindet, muß man der Shell noch mitteilen, wo sie zu suchen hat: Mit \texttt{./name} wird versucht, im aktuellen Verzeichnis (\texttt{./}) ein Programm namens \texttt{name} auszuführen.
|
||||
|
||||
Auf den meisten Systemen befindet sich im Pfad der Eintrag \texttt{\~{}/bin} bzw. \texttt{/home/benutzername/bin}, das bedeutet daß man Skripte die immer wieder benutzt werden sollen dort ablegen kann, so daß sie auch ohne eine Pfadangabe gefunden werden. Wie der Pfad genau aussieht kann man an der Shell durch Eingabe von \texttt{echo \$PATH}\index{\$PATH=\texttt{\$PATH}} herausfinden.
|
||||
Auf den meisten Systemen befindet sich im Pfad ein Verweis auf das Verzeichnis
|
||||
\texttt{bin} unterhalb des Home-Verzeichnisses eines Benutzers. Das bedeutet
|
||||
daß man Skripte die immer wieder benutzt werden sollen dort ablegen kann, so
|
||||
daß sie auch ohne eine Pfadangabe gefunden werden. Wie der Pfad genau aussieht
|
||||
kann man an der Shell durch Eingabe von \texttt{echo
|
||||
\$PATH}\index{\$PATH=\texttt{\$PATH}} herausfinden.
|
||||
|
||||
|
||||
\subsection{Rückgabewerte}\label{exitcode}\index{Rückgabewert|(textbf}\index{Exit-Code|see{Rückgabewert}}\index{Exit-Status|see{Rückgabewert}}
|
||||
@@ -140,16 +145,49 @@ behandelt (expandiert).
|
||||
|
||||
|
||||
\section{Vordefinierte Variablen}\label{vordefinierte_variablen}\index{Variablen}\index{vordefinierte Variablen}
|
||||
\index{\$n=\texttt{\$}$n$|(textbf}\index{\$*=\texttt{\$*}|(textbf}\index{\$@=\texttt{\$@}|(textbf}\index{\$\#=\texttt{\$\#}|(textbf}\index{\$?=\texttt{\$?}|(textbf}\index{\$\$=\texttt{\$\$}|(textbf}\index{\$!!=\texttt{\$!!}|(textbf}\index{\$ERRNO=\texttt{\$ERRNO}|(textbf}\index{\$PWD=\texttt{\$PWD}|(textbf}\index{\$OLDPWD=\texttt{\$OLDPWD}|(textbf}
|
||||
\index{ERRNO=\texttt{ERRNO}|see{\$ERRNO}}\index{PWD=\texttt{PWD}|see{\$PWD}}\index{OLDPWD=\texttt{OLDPWD}|see{\$OLDPWD}}
|
||||
\index{\$n=\texttt{\$}$n$|(textbf}
|
||||
\index{\$*=\texttt{\$*}|(textbf}
|
||||
\index{\$@=\texttt{\$@}|(textbf}
|
||||
\index{\$\#=\texttt{\$\#}|(textbf}
|
||||
\index{\$?=\texttt{\$?}|(textbf}
|
||||
\index{\$\$=\texttt{\$\$}|(textbf}
|
||||
\index{\$!!=\texttt{\$!!}|(textbf}
|
||||
\index{\$ERRNO=\texttt{\$ERRNO}|(textbf}
|
||||
\index{\$IFS=\texttt{\$IFS}|(textbf}
|
||||
\index{\$PWD=\texttt{\$PWD}|(textbf}
|
||||
\index{\$OLDPWD=\texttt{\$OLDPWD}|(textbf}
|
||||
\index{ERRNO=\texttt{ERRNO}|see{\$ERRNO}}
|
||||
\index{IFS=\texttt{IFS}|see{\$IFS}}
|
||||
\index{PWD=\texttt{PWD}|see{\$PWD}}
|
||||
\index{OLDPWD=\texttt{OLDPWD}|see{\$OLDPWD}}
|
||||
|
||||
Es gibt eine Reihe von vordefinierten Variablen, deren Benutzung ein wesentlicher Bestandteil des Shell-Programmierens ist.
|
||||
Es gibt eine Reihe von vordefinierten Variablen, deren Benutzung ein
|
||||
wesentlicher Bestandteil des Shell-Programmierens ist.
|
||||
|
||||
Die wichtigsten eingebauten Shell-Variablen sind:\nopagebreak
|
||||
\LTXtable{\textwidth}{tab_vordefinierte_variablen.tex}
|
||||
|
||||
\texttt{\$ERRNO}, \texttt{\$PWD} und \texttt{\$OLDPWD} werden nicht von jeder Shell gesetzt.
|
||||
\index{\$n=\texttt{\$}$n$|)}\index{\$*=\texttt{\$*}|)}\index{\$@=\texttt{\$@}|)}\index{\$\#=\texttt{\$\#}|)}\index{\$?=\texttt{\$?}|)}\index{\$\$=\texttt{\$\$}|)}\index{\$!!=\texttt{\$!!}|)}\index{\$ERRNO=\texttt{\$ERRNO}|)}\index{\$PWD=\texttt{\$PWD}|)}\index{\$OLDPWD=\texttt{\$OLDPWD}|)}
|
||||
Die Variable \texttt{\$IFS} enthält per Default die Blank-Zeichen, also
|
||||
Newline, Space und Tab. Man kann sie aber auch mit anderen Zeichen
|
||||
überschreiben. Diese werden immer dann als Trennzeichen benutzt, wenn ein
|
||||
String in mehrere Teile zerlegt werden soll, also beispielsweise in
|
||||
\texttt{for}-Schleifen oder beim zeilenweisen Einlesen mit \texttt{read}. Ein
|
||||
gutes Beispiel gibt es in dem Beispielskript zu \texttt{printf} (Abschnitt
|
||||
\ref{printf}).
|
||||
|
||||
\texttt{\$ERRNO}, \texttt{\$PWD} und \texttt{\$OLDPWD} werden nicht von jeder
|
||||
Shell gesetzt.
|
||||
\index{\$n=\texttt{\$}$n$|)}
|
||||
\index{\$*=\texttt{\$*}|)}
|
||||
\index{\$@=\texttt{\$@}|)}
|
||||
\index{\$\#=\texttt{\$\#}|)}
|
||||
\index{\$?=\texttt{\$?}|)}
|
||||
\index{\$\$=\texttt{\$\$}|)}
|
||||
\index{\$!!=\texttt{\$!!}|)}
|
||||
\index{\$ERRNO=\texttt{\$ERRNO}|)}
|
||||
\index{\$IFS=\texttt{\$IFS}|)}
|
||||
\index{\$PWD=\texttt{\$PWD}|)}
|
||||
\index{\$OLDPWD=\texttt{\$OLDPWD}|)}
|
||||
|
||||
|
||||
\section{Variablen-Substitution}\index{Variablen>-Substitution|(textbf}\index{Substitution|see{Variablen-Subst.}}\index{Variablen|(textbf}
|
||||
@@ -307,12 +345,12 @@ einem Konstrukt in der Form \texttt{i=\$((\$i + 1))} k
|
||||
Berechnungen angestellt werden.
|
||||
|
||||
Dabei wird der Ausdruck in den Klammern bewertet als ob er in doppelten
|
||||
Anführungszeichen stehen würde. Das bedeutet zum Einen, daß man auch mit
|
||||
Variablen rechnen kann, zum anderen macht es das Quoten des Sternchens
|
||||
An\-füh\-rungs\-zei\-chen stehen würde. Das bedeutet zum Einen, daß man auch
|
||||
mit Variablen rechnen kann, zum anderen macht es das Quoten des Sternchens
|
||||
überflüssig.
|
||||
|
||||
Für komplexere Berechnungen steht das Tool \texttt{bc} (Siehe Abschnitt
|
||||
\ref{bc}) zur Verfügung.
|
||||
\ref{bc}) zur Ver\-fü\-gung.
|
||||
|
||||
\index{Arithmetik-Expansion|)}
|
||||
|
||||
@@ -615,7 +653,7 @@ auf einen anderen Rechner portiert und die Datei vergi
|
||||
legt man eine solche Datei sinnvoll ab?
|
||||
|
||||
Um diesem Ärger zu entgehen, sollte man in einer solchen Situation ein
|
||||
Here-Dokument benutzen.
|
||||
Here-Do\-ku\-ment benutzen.
|
||||
|
||||
\emph{Umlenkung mit Hilfe von Dateideskriptoren:}\nopagebreak
|
||||
\LTXtable{\textwidth}{tab_datenstroeme_deskriptoren.tex}
|
||||
|
||||
Reference in New Issue
Block a user