%Teilweise Erzeugt mit dem LaTeX-Generator: http://latex.sehnot.de

%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
\usepackage[automark]{scrpage2}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

%Kopfzeile
\ihead{Linux}
\chead{}
\ohead{http://kohnlehome.de/linux/u-bash-programmierung.pdf}
\setheadsepline{0.5pt}

%Fußzeile
\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Überschrift 
\begin{center}
\LARGE % Schriftgröße
\bfseries % Fettdruck
\sffamily % Serifenlose Schrift
Übungsaufgaben: bash-Skriptprogrammierung
\end{center}


\section{Rechnen mit Variablen}
\subsection{rechnen}
Erstellen Sie ein bash-Skript \texttt{rechnen}, das mit zwei ganzen Zahlen, die in Variablen gespeichert sind, die fünf Grundrechenarten  durchführt und die Ergebnisse in folgender Form ausgibt:
\begin{verbatim}
17 + 5 = 22
17 - 5 = 12
17 * 5 = 85
17 : 5 = 3 Rest 2
\end{verbatim}


\section{Konsoleneingabe}
\subsection{rechnen}
Ändern Sie das Skript \texttt{rechnen} so, dass die zwei Zahlen vom Benutzer in der Konsole eingegeben werden, z. B.
\begin{verbatim}
franz@linux ~ $ ./rechnen 
Bitte geben Sie die erste Zahl ein: 17
Bitte geben Sie die zweite Zahl ein: 5
17 + 5 = 22
17 - 5 = 12
17 * 5 = 85
17 : 5 = 3 Rest 2
\end{verbatim}


\section{Parameter}
\subsection{rechnen}
Ändern Sie das Skript \texttt{rechnen} so, dass die zwei Zahlen beim Aufruf als Argumente übergeben werden, z. B.
\begin{verbatim}
./rechnen 17 5
\end{verbatim}

\subsection{backup}
Schreiben Sie ein Skript \texttt{backup}, das ein Verzeichnis, dessen Pfad als Argument übergeben wird, archiviert und komprimiert. Das Zielverzeichnis soll auch als Argument übergeben werden. Im Namen der entstehenden Datei soll das aktuelle Datum enthalten sein, z.B. \texttt{backup-2013-04-24.tar.gz}.


\section{Verzweigungen}
\subsection{tuersteher}
Schreiben Sie ein Skript \texttt{tuersteher}, das das Alter des Benutzer von der Konsole einliest und dann je nach Alter entweder \glqq Hereinspaziert! \grqq{} oder \glqq Du kommst hier nicht rein! \grqq{} ausgibt.


\subsection{rechnen}
Ändern Sie das Skript \texttt{rechnen} so, dass nur eine der vier Rechnungen durchgeführt wird. Der Benutzer kann in einem Menü wählen, ob addiert, subtrahiert, multipliziert oder dividiert werden soll.

\subsection{dateiinfo}
Schreiben Sie ein Skript \texttt{dateiinfo}, das verschiedene Eigenschaften eines Objektes im Verzeichnisbaum ausgibt (Datei/Verzeichnis, lesbar, beschreibbar, ausführbar).


\section{Schleifen}
\subsection{sternenfeld}
Schreiben Sie ein Skript \texttt{sternenfeld}, das ein Rechteck aus Sternen ausgibt. Die Breite und die Höhe des Rechtecks werden beim Skriptaufruf übergeben. Beispiel:
\begin{verbatim}
franz@linux ~ $ ./sternenfeld 17 4
*****************
*****************
*****************
*****************
\end{verbatim}

\subsection{Fakultät}
Erweitern Sie das Skript \texttt{rechnen} um eine Option \glqq Fakultät \grqq{}.

\subsection{quersumme}
Schreiben Sie ein Skript \texttt{quersumme}, das die Quersumme einer Zahl berechnet.

\subsection{Dateianfänge}
Schreiben Sie ein Skript \texttt{dateianfaenge}, das die ersten zwei Zeilen aller \texttt{.txt}-Dateien eines bestimmten Verzeichnisses in die Datei \texttt{zeilensammlung.txt} kopiert.

\section{Arrays}
Implementieren Sie den Bubblesort-Algorithmus

\end{document}
