![]() ![]() ![]() |
![]() ![]() |
Im Laufe der Zeit sammelt sich in einem Dateisystem so allerhand Schrott an,
seien es Sicherungsdateien der Editoren (Endung ~
) oder
core-Files (Name core) abgestürzter Programme oder
Objekt-Dateien übersetzter Programmmodule (Endung .o).
Es wäre sicherlich sinnvoll, ein Shellskript zu haben, was das Dateisystem von solchem Ballast befreit.
Also schreiben wir ein Programm mit folgenden Merkmalen:
Das nachfolgende Shellprogramm löscht im aktuellen Verzeichnis einschließlich aller Unterverzeichnisse core-, Backup- und Objektdateien. Welche Dateien zu entfernen sind, kann in der Kommandozeile angegeben werden.
1 #!/bin/sh
|
Zeile | Bemerkung |
1 |
# leitet normalerweise einen Kommentar ein, es sei denn,
es folgt ein Ausrufezeichen. Hieran erkennt die Shell, dass die
nachfolgenden Zeilen mit der angegebenen Shell auszuführen sind.
So wird ein Shellprogramm portabel und kann auch unter einer anderen
Shell aufgerufen werden.
|
2-5 | Löschen der Variablen, um Konflikte mit gleichnamigen globalen Variablen zu vermeiden. |
6, 13 |
Die Schleifenvariable i wird mit den Kommandozeilenparametern verbunden.
|
7-12 | Es wird getestet, welche Optionen per Kommandozeile übergeben wurden. Die entsprechenden Variablen werden ggf. belegt. |
14, 18 | Die Schleifenvariable wird mit der Liste der gesetzten Optionen verbunden. Jede gesetzte Variable (Option) ist somit ein Element der Liste. Ist keine Variable (Option) gesetzt, terminiert die Schleife sofort (leere Liste). |
15,17 |
Nach den entsprechenden Dateien (*core ,*.o ,*~ ) wird
ausgehend vom aktuellen Pfad gesucht. Die Schleifenvariable x
wird jeweils mit dem Ergebnis von find belegt.
|
16 |
Die Dateien werden gelöscht. Wurde die Option -i in der Kommandozeile
übergeben, expandiert die Zeile zu rm -i <dateiname> .
|
Eine Auflistung der wichtigsten Shellkommandos findet man im Anhang.
![]() ![]() ![]() |
![]() ![]() |