• Keine Ergebnisse gefunden

Übungsblatt3:Shellskripte ÜbungenzuComputergrundlagenWS2015/2016

N/A
N/A
Protected

Academic year: 2021

Aktie "Übungsblatt3:Shellskripte ÜbungenzuComputergrundlagenWS2015/2016"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Übungen zu Computergrundlagen WS 2015/2016

Übungsblatt 3: Shellskripte

06.11.2015

Allgemeine Hinweise

• Abgabetermin für die Lösungen ist – Freitag, 13.11., 11:00

• Schickt die Lösungen bitte per Email an Euren Tutor.

Aufgabe 3.1: Bilder per Email (5 Punkte)

Betrachte das folgende Skript (/group/cgl/2015/03/doit.sh):

#!/ bin / b a s h

#

# A u s e f u l s c r i p t - if it wasn ’ t so b u g g y ...

#

# set v a r i a b l e s d e f a u l t d i r =.

m a x s i z e = 640 x 6 4 0

# c o m m a n d l i n e h a n d l i n g dir = $1

if [ - z $ d i r ] ; t h e n dir = $ d e f a u l t d i r fi

# f i n d i m a g e s

i m a g e s = $ ( ls $ d i r /*. jpg ) if [ - z " $ i m a g e s " ];

e c h o " No i m a g e s in $ d i r !"

e x i t 2 fi

# r e s i z e i m a g e s

for i m a g e in $ i m a g e s do d i r n a m e = $ ( d i r n a m e i m a g e )

b a s e n a m e = $ ( b a s e n a m e $ i m a g e . jpg )

n e w i m a g e = $ d i r n a m e / $ { b a s e n a m e } _ s m a l l . jpg e c h o " $ i m a g e - > $ n e w i m a g e "

c o n v e r t $ i m a g e - r e s i z e m a x _ s i z e $ n e w i m a g e fi

Als Argument liest das Skript einen Verzeichnisnamen. In diesem Verzeichnis sollten sich einige .jpg-Bilder befinden.

3.1.1Welche Aufgabe soll das Shellskript vermutlich erfüllen? Wofür ist es nützlich? (1 Punkt)

1

(2)

3.1.2Kopiert Euch das Shellskript in Euer Heimatverzeichnis. Was müsst Ihr machen, um diese Datei durch./doit.sh aufrufen zu können? (1 Punkt)

3.1.3 Ruft das Skript wie folgt auf:

./ d o i t . sh / g r o u p / cgl / 2 0 1 5 / 0 3 / i m a g e s

Wenn Ihr diesen Befehl ausführt, gibt es verschiedene Fehler. Dabei gibt es zwei Arten von Fehlern: einerseits Fehler im Skript, die seine Ausführung verhindern, andererseits wird das Skript aber auch nicht so verwendet, wie der Autor sich dies wohl gedacht hat.

Korrigiert die Fehler im Skript und gebt das korrigierte Skript als Lösung ab! (2 Punkte) Hinweise:

Nicht immer geben die Fehlermeldungen einen direkten Hinweis darauf, was schief gelau- fen ist. Alle Fehler in diesem Skript können durch das Hinzufügen oder Verschieben von wenigen Zeichen korrigiert werden.

Ein erstaunlich nützliches Werkzeug zur Fehlersuche in solchen Skripten ist ein guter Edi- tor, der die unterschiedlichen Elemente eines Shellskripts unterschiedlich einfärbt („Syntax- Highlighting“). Schaut Euch genau an, wie der Editor die verschiedenen Elemente einfärbt, und welche davon nicht wie erwartet aussehen.

3.1.4 Auf dem gegebenen Verzeichnis /group/cgl/2015/03/images kann das Skript so nicht funktionieren. Warum? (1 Punkt)

Aufgabe 3.2: Webmaster (5 Punkte)

Ein typischer Webserver erzeugt Logdateien, die jeden Zugriff durch Zeilen der Form

127.0.0.1 - - [24/Mar/2011:16:56:12 -100] ‘‘GET http://www.google.de HTTP/1.1’’ 200 2459 IP - - [Timestamp Zone] ‘‘Command Webpage Format’’ Returncode size

dokumentieren. Hieraus lässt sich sehr gut analysieren, welche Seite wie oft von wem aufgerufen wurde.

Schreibt ein Skript analyze_log.sh, das als einzigen Parameter den Namen einer solchen Logdatei bekommt. Danach gibt es zu dieser Logdatei folgendes aus:

• Wie vieleverschiedeneWebseiten angefragt wurden. Die Webseite steht immer in der 7. Spalte (jedes Leerzeichen trennt Spalten voneinander).

• Wie oft jede Webseite aufgerufen wurde. Dazu sucht Euch zunächst heraus, welche Webseiten es überhaupt gibt. Diese stehen immer in der siebten Spalte; an dem „http://“ stören wir uns diesmal nicht. Anschließend schreibt eine Schleife, die für jede Webseite die Anzahl der Aufrufe ausgibt.

Hinweise:

• Wenn Ihr in Schritten vorgeht, ist es einfacher.

• Hilfreiche Werkzeuge für diese Aufgabe sind sort,wc,grep,awk (undman)

• Mithilfe von awk können zum Beispiel einzelne Spalten aus einer Datei gelesen werden. Der folgende Programmausschnitt gibt die 2. Spalte aus der Datei “Textdatei” wieder.

awk ’{ p r i n t $2 } ’ T e x t d a t e i

2

Referenzen

ÄHNLICHE DOKUMENTE

Wir kennen die Zahlenbereiche und ihre schrittweise Erweiterung, beginnend von den natürlichen Zahlen bis hin zu den reellen Zahlen noch aus dem Mathematikunterricht der Schule.

Die folgenden Fehler sind in der Skriptversion vom 30.7.. Dieser Fehler taucht gleich zwei Mal auf, jeweils in der ersten und der dritten abgesetzten Formel... • Beweis zu Satz

Endbenutzergeräte, über die die Benutzer eine Verbindung mit dem Netz herstellen, werden auch als Hosts bezeichnet.. Mithilfe dieser Geräte können die Benutzer Informationen

Speichern Sie Ihre Lösung im Ordner 'Ergebnisse' unter dem Namen 'Vertiefungsaufga- be_III_Dosen.xlsx' oder 'Vertiefungsaufgabe_III_Dosen.ods'... Thema:

Wenn bei der Firma HARO GmbH ein neues Erzeugnis in das Sortiment aufgenommen werden soll, wird eine Projektgruppe eingerichtet, die sich aus jeweils einem Vertreter der

Innenabstand in Langform für oben (10) - rechts (0) - unten (0) - links (10) Außenabstand in Kurzform 5 Pixel von allen Seiten.

Diese Zwischenkreisspannung wird von einem Tiefsetzsteller oder Hochsetzsteller erzeugt, je nachdem, ob die Gesamtspannung der Solarmodule kleiner oder größer als

Wenn der Wechselrichter feststellt, dass die Leistung zu groß wird, arbeitet er einfach nicht im MPP und begrenzt so die Leistung auf einen Maximalwert... 4.6 Faustformeln