Übung (Directory Struktur)
Schreibe ein Shell-Script das Unterverzeichnisse und Dateien anlegt, es wird ein Argument an das Script übergeben.
Aufruf: ./build_dirs.sh abcd
Dies führt zu folgender Directorystruktur:
./
└── abcd/
├── abcd_01/
│ ├── abcd.01.1.txt
│ ├── abcd.01.2.txt
│ └── abcd.01.3.txt
└── abcd_02/
├── abcd.02.1.txt
├── abcd.02.2.txt
└── abcd.02.3.txt
Schreibe weiters ein Shell-Script clean_dir.sh das diese Verzeichnisstruktur wieder löscht.
Hinweis: Das Kommando tree kann verwendet werden um eine Directory Struktur in obiger Form darzustellen.
Übung (Skript Generator)
Schreibe ein Skript das
- eine Skriptdatei erzeugt (Name wird als Argument übergeben),
- die She-Bang Zeile einfügt,
- einen echo Befehl einfügt und
- das eXecution Flag für das Skript setzt.
Anwendung:
$ ./makescript.sh mytest
erzeugt die Datei mytest.sh :
#!/bin/env sh
echo "mytest Skript"
# write yor script here
Das erzeugte Skript kann sofort ausgeführt werden:
$ ./mytest.sh
Übung (Headline Cat)
Verwende $@ zur Lösung dieser Aufgabenstellung.
Schreibe ein Skript das eine Art cat zur Verfügung stellt. Als Argumente werden eine beliebige Anzahl von Textdateien übergeben. Das Ergebnis (der Inhalt aller dieser Dateien) wird in die Datei result.txt (fixer Dateiname) geschrieben (ist die Datei vorhanden soll deren Inhalt überschrieben werden). Jedem Datei-Inhalt soll eine Überschrift vorangestellt werden.
Beispiel – der Aufruf
$ ./headline_cat.sh file1.txt file2.txt file3.txt
ergibt die Datei result.txt mit folgendem Inhalt:
== file1.txt ==========================================
Das ist der Inhalt
der ersten Textdatei
== file2.txt ==========================================
Das ist der Inhalt
der zweiten Textdatei
== file3.txt ==========================================
Das ist der Inhalt
der dritten Textdatei
Übung (RANDOM)
Schreibe ein shellscript das eine beliebige Menge von Dateinamen als Parameter akzeptiert. Von jeder dieser Dateien soll eine Kopie im gleichen Verzeichnis angelegt werden. Die Kopie unterscheidet sich vom Original durch eine angefügte Zufallszahl, Beispiel:
test.txt --> test.txt.38573
Aufrufbeispiele:
$ ./randcp.sh test1.txt test2.txt
$ ./randcp.sh xyz1.md test3.txt abcd.dat
$ ./randcp.sh *.md
- Hinweis:
$RANDOMliefert bei jeder Verwendung eine zufällige Zahl.- Achtung:
#!/bin/bashin der she-bang Zeile verwenden.shunterstützt (in REPL) keine Zufallszahlen.
- Achtung: