axeljaeger
03-09-2003, 16:42
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:
my
+-src
| +-artikel
| | +-computer
| +-downloads
| +-biken
+-release
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.
Skript makehtml.sh
#!/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
Das Problem liegt meiner Meinung daran, das m4 keine gescheite Ausgabedatei bekommt und meine geparste Datei irgendwo im Nirvana landet
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:
my
+-src
| +-artikel
| | +-computer
| +-downloads
| +-biken
+-release
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.
Skript makehtml.sh
#!/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
Das Problem liegt meiner Meinung daran, das m4 keine gescheite Ausgabedatei bekommt und meine geparste Datei irgendwo im Nirvana landet