Übungen zu ``Shellprogrammierung''


Sommersemester 97

Blatt 10 vom: 30.6.97
letzter Abgabetermin: 7.7.97 (vor 10.00 Uhr)

Aufgabe 1 (5 Punkte)

Schreiben Sie ein reines awk-Skript, welches das Kommando wc nachbaut.

$ wc -?
wc [-l] [-c] [-w] [files ...]
$ wc blatt.txt - wc
Hello    World          !
^D      62      233     1478 blatt.txt
        1       3       26 -
        98      287     2417 wc
        161     523     3921 total

Wörter werden dabei durch Leerzeichen oder Tabulator getrennt.

Aufgabe 2 (2 Punkte)

In dem Katalog /home/sp/Blatt/Blatt10/Src finden Sie die Datei account. In der Datei wurde bei jedem Druckauftrag protokolliert, welcher Benutzer wieviele Seiten gedruckt hat.

Schreiben Sie ein Shell-Skript, welches pro Benutzer die Gesamtzahl der gedruckten Seiten ausgibt. Sortieren Sie die Ausgabe nach der Anzahl gedruckter Seiten.

Aufgabe 3 (2 Punkte)

Betrachten Sie das Skript /home/sp/Blatt/Blatt10/Src/test.sh, und berichtigen Sie alle Fehler. Das korrekte Skript hat folgende Ausgabe:

$ test.sh 
1! = 1
2! = 2
...
14! = 1278945280
-1! = usage: test.sh <positive number>

Sie dürfen keine Zeilen einfügen oder entfernen.

Aufgabe 4 (1 Punkt)

a)
Was bedeuten die nachfolgende Zeilen:
$ cat /mach_kernel 1>&-
cat: standard output: Bad file number
$ echo $?
1
$ cat /mach_kernel 1>/dev/null
$ echo $?
0

b)
Warum sollte der super user in seinem Suchpfad keinen Eintrag für den aktuellen Katalog haben? Nennen Sie zwei Fälle, was sonst passieren könnte.