Sämtliche Bearbeitungsschritte sind in einem SHELL-Skript (uebung2.sh) mittels der entsprechenden UNIX-Befehle durchzuführen. Pseudocode-Stellen sind innerhalb <<< und >>> zu finden und zusätzlich fett markiert. Pseudocode ist durch Shell-Code zu ersetzen:
Definiere die erforderlichen
Umgebungsvariablen:
GEWUENSCHTE_FUNKTION=$1 # In Parameter 1 wird
die gewünschte Funktion übergeben
NAME_DES_BENUTZERS=$2
# In Parameter 2 wird der Name des Benutzers
übergeben
ART_DES_BENUTZERS=$3 # In Parameter 3 wird die Art
des Benutzers
übergeben
PARAMETER_ANZAHL=$#
LISTE_DER_PARAMETER=$*
WURZEL_VERZEICHNIS="./home"
INFO="Folgendes
Kommando wurde aufgerufen: "$0" "$LISTE_DER_PARAMETER
Definiere die Hauptfunktion main()
und rufe diese im Script auf:
main()
{
<<<
Gib den Wert der Umgebungsvariablen INFO auf dem Bildschirm aus
>>>
<<< Wenn der Wert der
Variablen PARAMETER_ANZAHL ungleich 3 ist ... >>>
<<<...
dann ... >>>
<<< Gib den Text
"Anzahl der Parameter ungueltig" auf dem Bildschirm aus
>>>
exit 1
<<<...Ende von
wenn >>>
<<< Im Fall die Variable
GEWUENSCHTE_FUNKTION habe den Wert ... >>>
Erzeugen)
Erzeugen
;;
*)
<<< Gib den Text "Diese
gewuenschte Funktion wird nicht unterstuetzt" auf dem
Bildschirm aus >>>
;;
esac
}
main
Definiere die Funktion Erzeugen()
oberhalb der Funktion main():
Erzeugen()
{
<<<Gib
den Text "Funktion Erzeugen wurde aufgerufen" auf dem
Bildschirm aus >>>
<<< Wenn das
Verzeichnis(=spezielle Datei) existiert, welche in der Variablen
WURZEL_VERZEICHNIS festgelegt ist ...>>>
<<<
dann ...>>>
echo $WURZEL_VERZEICHNIS"
bereits vorhanden"
<<< ... andernfalls ...
>>>
<<< ... erstelle das Verzeichnis, welches
in der Variablen WURZEL_VERZEICHNIS festgelegt ist >>>
<<<
... Ende von wenn >>>
<<< Erstelle das
Verzeichnis >>> $WURZEL_VERZEICHNIS/$NAME_DES_BENUTZERS
<<<
Wenn die Variable ART_DES_BENUTZERS die die Zeichenkette
"Administrator" enhält ... >>>
<<<...dann
...>>>
<<< ändere die Berechtigung von >>>
$WURZEL_VERZEICHNIS/$NAME_DES_BENUTZERS <<< auf
dr-xr-xr-x>>>
<<<... Ende von
wenn >>>
<<< Wechsle in das Verzeichnis >>>
$WURZEL_VERZEICHNIS/$NAME_DES_BENUTZERS
echo "Willkommen im
UNIX als "$ART_DES_BENUTZERS > info.txt
}
Ergänze in der Funktion main()
die Case-Konstruktion durch die Funktion Kopieren(). Definiere die
Funktion Kopieren() oberhalb der Funktion main():
Kopieren()
{
<<<
Gib den Text "Funktion Kopieren wurde aufgerufen" auf dem
Bildschirm aus >>>
<<< Erzeuge das Verzeichnis
>>> $WURZEL_VERZEICHNIS/$NAME_DES_BENUTZERS/Kopie
<<<
Wechsle in das Verzeichnis >>>
$WURZEL_VERZEICHNIS/$NAME_DES_BENUTZERS
<<< Gib
den Pfad des aktuellen Verzeichnisses auf dem Bildschirm aus >>>
<<<
Kopiere die Datei info.txt in die Datei Kopie/kopie_info.txt
}
Ergänze in der Funktion main()
die Case-Konstruktion durch die Funktion Loeschen(). Definiere die
Funktion Loeschen() oberhalb der Funktion main():
Loeschen()
{
<<<
Gib den Text "Funktion Loeschen wurde aufgerufen" auf dem
Bildschirm aus >>>
<<< Lösche das
Verzeichnis $WURZEL_VERZEICHNIS/$NAME_DES_BENUTZERS mit allen
Unterverzeichnissen ohne Rückfragen >>>
}
Ergänze in der Funktion main()
die Case-Konstruktion durch die Funktion Sichern(). Definiere die
Funktion Sichern() oberhalb der Funktion main():
Sichern()
{
<<<
Gib den Text "Funktion Sichern wurde aufgerufen" auf dem
Bildschirm aus >>>
<<< Wechsle in das
Verzeichnis, welches durch der Wert der Umgebungsvariablen
WURZEL_VERZEICHNIS festgelegt wird >>>
<<< Gib
den Pfad des aktuellen Verzeichnisses aus >>>
<<<
Wenn das Verzeichnis ./backup existiert >>>
<<<
... dann ... >>>
<<< Gib den Text
"backup-Verzeichnis bereits vorhanden" auf dem Bildschirm
aus >>>
<<< ... andernfalls ... >>>
<<<
Erstelle das Verzeichnis ./backup >>>
<<< Ende
von wenn >>>
<<< Wechsle in das Verzeichnis,
welches durch den Wert der Variablen NAME_DES_BENUTZERS festgelegt
wird >>>
<<< Erzeuge ein tar-Archiv mit dem
Namen $NAME_DES_BENUTZERS.tar, in welchem relativ zum aktuellen
Verzeichnis alle Dateien und Unterverzeichnisse vorhanden sind >>>
<<< Kopiere die Datei $NAME_DES_BENUTZERS.tar in das
Verzeichnis ../backup >>>
}
Ergänze in der Funktion main()
die Case-Konstruktion durch die Funktion Ansehen(). Definiere die
Funktion Ansehen() oberhalb der Funktion main():
Ansehen()
{
<<<
Gib den Text "Funktion Ansehen wurde aufgerufen" auf dem
Bildschirm aus
<<<Liste den Inahlt des Archives
$NAME_DES_BENUTZERS.tar, welches im Verzeichnis
$WURZEL_VERZEICHNIS/backup vorhanden ist, auf dem Bildschrim aus
>>>
}
Ergänze in der Funktion main()
die Case-Konstruktion durch die Funktion Einspielen(). Definiere die
Funktion Einspielen() oberhalb der Funktion
main():
Einspielen()
{
<<< Gib den Text
"Funktion Einspielen wurde aufgerufen" auf dem Bildschirm
aus >>>
<<< Kopiere das Archif
$WURZEL_VERZEICHNIS/backup/$NAME_DES_BENUTZERS.tar in das
Verzeichnis $WURZEL_VERZEICHNIS/$NAME_DES_BENUTZERS >>>
<<<
Wechsle in das Verzeichnis $WURZEL_VERZEICHNIS/$NAME_DES_BENUTZERS
>>>
<<< Packe das tar-Archiv
$NAME_DES_BENUTZERS.tar im aktuellen Verzeichnis aus >>>
}