Übungen zu ``Shellprogrammierung''
Sommersemester 97
Blatt 4 vom: 12.5.97
letzter Abgabetermin: 26.5.97 (vor 10.00 Uhr)
Machen Sie sich mit den Kommandos touch und rm vertraut.
Erzeugen Sie mit UNIX-Kommandos Dateien mit folgenden Namen. Die $-Zeichen schließen dabei die Namen ein und gehören nicht mit zum gewünschten Dateinamen.
$#a$ $abb$ $a?b$ $a\b$ $a*b$ $date: Tue May 6 14:20:28 MET DST 1997 ;$ $--$ $a b$ $a/b$ $-a$ $date: `date`;$ $"$
Bitte halten Sie sich zeilenweise an die Reihenfolge!
Löschen Sie die erzeugten Dateien einzeln mit einem UNIX-Kommando.
Machen Sie sich mit dem Programm /home/sp/Blatt/Blatt4/Src/printArgs vertraut. Was ist der Unterschied zwischen
lyra Src 505 printArgs *
und
lyra Src 506 printArgs '*'
und wie kommt es zu der jeweiligen Ausgabe?
Machen Sie sich mit dem Shell-Skript /home/sp/Blatt/Blatt4/Src/skript1 vertraut. Führen Sie das Skript mit einigen Kommandozeilen-Argumente aus, und erklären Sie, was passiert.
Was geschieht bei Aufruf von
lyra Src 507 sh skript1
Stellen Sie den genauen Ablauf von der Eingabe von skript1 bis zur Ausführung von printArgs graphisch dar. Benutzen Sie Begriffe wie fork, exec, wait,...
Stellen Sie den genauen Vorgang von der Eingabe von skript1 bis zur Ausführung von echo und exit graphisch dar, wenn die erste Zeile der Datei skript1
#!/bin/sh
wäre.
Angenommen, Sie müssen innerhalb eines Dateibaums alle Kataloge, die jünger als ein Monat sind und deren Namen mit Loe beginnen, und alle leere Dateien gleichzeitig finden. Wie machen Sie das? Was ist wenn in dem Verzeichnis, in dem Sie sich gerade befinden, sich eine Datei Loesung befindet?
Führen Sie Ihrem Tutor die entsprechenden Schritte live vor.
lyra Loesung 508 ./getUserInfo bernd USER_NAME = bernd FULL_NAME = Bernhard Kuehl UID = 101 GID = 11 GNAME = inform lyra Loesung 509 echo $? 0
lyra Loesung 510 ./getUserNamesOfGroup stdp Maria Munk Jan Hannemann Gunther Imeyer ...
Erklären Sie Ihrem Tutor folgenden Auszug aus einer Shellsitzung. Wozu dient das Kommando export?
lyra Loesung 511 sh \h \W \! x='Hello world!' \h \W \! sh \h \W \! echo $x \h \W \! exit \h \W \! export x \h \W \! sh \h \W \! echo $x Hello world! \h \W \! exit \h \W \!