Hallo,
ich versuche gerade ein kleines Shellskript zu bauen, was mir die Arbeit erleichertn soll (Es ist mein erstes ;-)
Problemstellung:
In einer große Homepage benutze will ich Navigationsleisten, Fußzeilen und ähnliches in seperate Dateien auslagern. Ich habe mir m4 ausgesucht, um die gemeinsamen Elemente in meine Seiten einzubauen. PHP habe ich auf meinem Server nicht zur Verfügung. Es gibt also eine Verzeichnisstruktur:
Im Verzeichnis src liegen Dateien, die erst von m4 bearbeitet werden müssen, das fertige HTML-Dateien rauskommen. Die fertigen Dateien sollen in einer vergleichbaren Verzeichnisstruktur im Verzeichnis release liegen. Dazu hab ich mir folgendes Skript ausgedacht, was aber nicht funktioniert.Code:my +-src | +-artikel | | +-computer | +-downloads | +-biken +-release
Skript makehtml.sh
Das Problem liegt meiner Meinung daran, das m4 keine gescheite Ausgabedatei bekommt und meine geparste Datei irgendwo im Nirvana landetCode:#!/bin/sh tempfile=/tmp/mkhtml.$$ ls > $tempfile # Liste aller Dateien und Verzeichnisse im aktuellen Verzeichnis for i in $(cat $tempfile); do if [ -d $i ]; then # Wenn Verzeichnis... sh -c "cd $i; $1../makehtml.sh $1../" # Dieses Skript im Unterverzeichnis ausführen und ../ + $1 übergeben fi done ls *.m4 >& /dev/null if [ $? = 0 ]; then # Überprüfen, ob es wenigstens eine .m4-Datei im aktuellen Verzeichnis gibt for x in *.m4; do # Für jede .m4-Datei m4 aufrufen und .m4 im Dateinamen durch .html und src durch release ersetzen. echo $(pwd)/$x | sed s/src/release/ | sed s/.m4/.html/ > $tempfile m4 $(pwd)/$x > cat $tempfile done fi rm $tempfile
Lesezeichen