• Keine Ergebnisse gefunden

Übungen zu Computergrundlagen WS 2018/2019

N/A
N/A
Protected

Academic year: 2021

Aktie "Übungen zu Computergrundlagen WS 2018/2019"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Übungen zu Computergrundlagen WS 2018/2019

Übungsblatt 5: Shell-Skripte 2

23. November 2018

Allgemeine Hinweise

• Abgabetermin für die Lösungen ist Freitag, 30.11.2017, 11:00 Uhr

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

Montag 14:00–15:30: Grant Cates (gcates@icp.uni-stuttgart.de) Dienstag 9:45–11:15: Kai Szuttor (kai@icp.uni-stuttgart.de)

Dienstag 15:45–17:15: Julian Michalowsky (jmichalowsky@icp.uni-stuttgart.de) Mittwoch 15:45–17:15: Michael Kuron (mkuron@icp.uni-stuttgart.de)

Donnerstag 9:45–11:15: Johannes Zeman (zeman@icp.uni-stuttgart.de)

• Die Übungen sollen in Gruppen von jeweils zwei bis drei Leuten bearbeitet werden. Abgaben von Einzelpersonen werden nicht akzeptiert. Bitte gebt nur eine Lösung pro Gruppe ab und nennt in eurer Abgabe alle Mitglieder eurer Gruppe!

Aufgabe 5.1: Dateinamen mit Zeitstempel versehen (2 Punkte)

Schreibe ein Skript, das als einzigen Parameter den Pfad zu einem Zielverzeichnis (ohne ‘/’ am Pfa- dende!) übergeben bekommt. Das Skript soll innerhalb dieses Verzeichnisses sämtliche Dateien derart umbenennen, dass zwischen ursprünglichem Dateinamen und Dateiendung ein Zeitstempel nach fol- gendem Schema eingefügt wird: “-<zweistellige Jahreszahl><zweistellige Monatszahl><zweistellige Tageszahl>-<zweistellige Stundenzahl>:<zweistellige Minutenzahl>”. Das folgende Listing demon- striert das gewünschte Verhalten:

$ ls t e s t d i r

1 2 3 4 5 6 . dat ’2. E i n e B u c h . txt ’ f u e r _ e l i s e . mp3

$ d a t e

Fri Nov 23 1 1 : 3 2 : 0 1 CET 2 0 1 8

$ ./ a d d _ t i m e s t a m p . sh t e s t d i r

$ ls t e s t d i r

1 2 3 4 5 6 - 1 8 1 1 2 3 - 1 1 : 3 2 . dat

’2. E i n e Buch - 1 8 1 1 2 3 - 1 1 : 3 2 . txt ’ f u e r _ e l i s e - 1 8 1 1 2 3 - 1 1 : 3 2 . mp3 Hinweise:

• Zum Testen Deines Skripts kannst Du Dir das Verzeichnis /group/cgl/2018/05/testdir ko- pieren.

• In dieser Aufgabe kann sedmitback references helfen.

1

(2)

Aufgabe 5.2: Netzwerkdiagnose (4 Punkte)

Schreibe ein Skript, das als einzigen Parameter den Namen eines Rechners oder dessen IP-Adresse bekommt. Dieses Skript soll:

5.2.1 (1 Punkt) Zunächst überprüfen, ob ein Rechnername/eine IP-Adresse übergeben wurde.

Falls nicht, soll das Skript mit einer entsprechenden Fehlermeldung abbrechen.

5.2.2 (2 Punkte) In einer Dauerschleife immer jeweilsein ping-Paket an den Zielrechner schi- cken und dann eine Sekunde lang warten. Leite die Standardausgabe des ping-Befehls nach

“/dev/null” um. Benutze den von ping zurückgegebenen Fehlercode, um zu entscheiden ob der Zielrechner erreichbar war. Falls der Zielrechner nicht erreicht werden konnte, soll eine entsprechende Fehlermeldung ausgegeben werden und das Skript beendet werden.

5.2.3 (1 Punkt) Erweitere das Skript so, dass es falls der Zielrechner nicht erreicht wurde die Fehlermeldung außerdem an (D)eine im Skript vordefinierte E-Mail-Adresse verschickt. Im Betreff der Mail soll der Name des Zielrechners genannt werden (beispielsweise “Machine cip20 down”).

Hinweise:

• Um Dein Skript zu testen, kannst Du als Zielrechner giraffe (IP-Adresse 129.69.120.105) angeben. Dieser ist so konfiguriert, dass er eingehendeping-Pakete mit einer Wahrscheinlichkeit von 10 % ignoriert.

Aufgabe 5.3: Würfelspiel (4 Punkte)

In Bash-Skripten können sogenannte “Funktionen” genutzt werden um Code wiederverwendbar zu machen. Als einfaches Beispiel um den Gebrauch von Funktionen zu verdeutlichen, sieh Dir folgendes Skript an:

#! / b i n / b a s h

# S c r i p t name : e x a m p l e . s h f u n c t i o n c o m p l i c a t e d {

e c h o In h e r e v e r y c o m l i c a t e d t h i n g s h a p p e n .

# Add them i f you l i k e . . . }

c o m p l i c a t e d c o m p l i c a t e d c o m p l i c a t e d

Ausführen dieses Skriptes führt zu folgender Ausgabe:

$ ./ e x a m p l e . sh

In h e r e v e r y c o m l i c a t e d t h i n g s h a p p e n . In h e r e v e r y c o m l i c a t e d t h i n g s h a p p e n . In h e r e v e r y c o m l i c a t e d t h i n g s h a p p e n .

In dieser Aufgabe soll ein einfaches Würfel-Ratespiel simuliert werden, bei dem der Spieler jeweils einen Tip abgibt, welche Zahl als nächstes gewürfelt wird. Gespielt wird so lange, bis die vorhergesagte und die gewürfelte Zahl übereinstimmen – damit ist das Spiel gewonnen. Schreibe ein Skript nach folgenden Vorgaben:

2

(3)

5.3.1(1 Punkt) Schreibe zunächst eine Funktionroll, die mit jeweils gleicher Wahrscheinlich- keit eine Zahl zwischen eins und sechs ausgibt.

5.3.2 (3 Punkte) Scheibe nun die Dauerschleife, die das Spiel simuliert. Bei jedem Durchlauf soll der Spieler aufgefordert werden einen Tip abzugeben und seine Eingabe in einer Variable zwischengespeichert werden. Durch Aufruf der Funktion roll wird ein Würfelwurf simuliert, dessen Ergebnis mit der Eingabe verglichen wird. Sind beide gleich, wird eine Gewinn-Nachricht ausgegeben und das Skript beendet – anderenfalls beginnt die nächste Runde.

Hinweise:

• Benutzereingaben können mit read in eine Variable gespeichert werden.

3

Referenzen

ÄHNLICHE DOKUMENTE

Lass den Inhalt der Datei mittels einer einzigen Befehlszeile, die auf Deinem Arbeitsplatz- rechner ausgeführt wird, in eine Datei namens cip0version.txt in Deinem

– Wenn ein Wort im Text gefunden wird, dann muss das Programm zunächst schauen, ob das Wort bereits in der Liste ist, und wenn, an welcher Position. Wenn das der Fall ist, muss

Neue Wörter sollen in diesem Binär- baum lexikographisch (Über die Funktion strcmp ) einsortiert werden.. Schreibt dafür separate Funktionen search, insert und output, um die

Dieses Dokument enth¨ alt Fehler und Verbesserungsvorschl¨ age f¨ urs Skript, die im Laufe des Semesters bemerkt werden und in die n¨ achste Revision des Skriptes einfließen

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

Die Dauer der REM-Phasen wird im Verlaufe des Schlafes länger Die Wahrscheinlichkeit für das Erwachen ist zu Beginn und am Ende einer REM-Phase erhöht Die ersten NREM-Zyklen

[r]

First of all, we will code a base class which implements all the things that are shared by the two types of accounts: the attributes holder, number and balance, methods for deposit