dir2html-Script - Definierte Dateinamen "auslassen"
-
Hallo liebe Community,
ich habe ehrlichgesagt keine Ahnung von C, habe eigendlich auch keine Interesse es zu lernen (zeitmangel; ansonsten sieht das ganz interessant aus). Jedoch habe ich auf meinem Linux-Server (Gentoo 2.4.21) derzeit ein C-Script laufen, das ich unbedingt benötige. Die Sourcen habe ich im irgendwo im Internet gefunden, leider fehlt mir an dem Script etwas.
Zur Erklärung des Scripts:
C-Script wird ausgeführt und speichert alle Daten im selben Verzeichnis in eine HTML-Datei und formatiert diese so, das ein Directory-Listing (beispielsweise für einen Webserver, so wie es bei mir auch der fall ist) erzeugt. In meinem Fall wird die index.html erzeugt, da darauf der Webserver zugreift ohne das direkt diese Datei vom Client-Browser aufgefufen wird (so wie eben auch bei Apache etc.).
Problem:
Das Script listet nacher bei der Ausgabe in HTML den Scriptnamen selbst und die index.html mit auf (was natürlich im normalfall ungewöhnlich und unerwünscht ist).
Möchte Lösung:
Script wird ausgeführt, formatiert alle Dateien im selben Verzeichnis in HTML, ignoriert jedoch den von mir definierten Scriptnamen (in meinem Fall "script") und die index.html um zu verhindern, das der Client-Browser bei http-Anfrage die index.html und den Scriptnamen "script" mit einsehen kann.
Hier das Script an sich:
#!/bin/bash # Variablen page=index.html #default output file name fmask="*" if [ $# -gt 0 ] then fmask="$@" fi echo Files: $fmask # Html header echo \<html\> > $page echo \<head\> >> $page echo \<title\>List of Files\</title\> >> $page echo \<META name=\"generator\" content=\"dir2html v1.0\"\> >> $page echo \</head\> >> $page echo \<body\> >> $page echo \<H2\>List of Files\</H2\> >> $page echo \<pre\> >> $page # Links erstellen for i in $fmask do echo \<A HREF=\"${i}\"\>`ls -l "${i}"`\</A\> >> $page done # Close the html echo \</pre\> >> $page echo \<HR\>\<center\> >> $page echo \</center\> >> $page echo \</body\> >> $page echo \</html\> >> $page
Wäre dankbar wenn mir jemand die Lösung auf die Hand klatschen würde.
MfG,
Michael
-
Das ist doch kein C; das ist Bash.
Aber wenn Du das beheben möchtest, dann mach einfach sowas:
for i in $fmask do wenn Dateiname nicht in Blacklist: echo \<A HREF=\"${i}\"\>`ls -l "${i}"`\</A\> >> $page done
-
Sorry, aber ich habe keinerlei Programmiertechnischen vorstellungen in meinem Gehirn. Wenn du mir das einfachso in mein Script schreiben würdest und mir die Lösung ausgibst, wäre ich dir sehr dankbar.
Ich dache C wäre (fast) das gleiche wie bash ?!
MfG,
Michael
-
Hallo,
Ich hab mir das ganze gerade nochmal angeschaut; Du kannst Doch ohnehin angeben, für welche Dateien Du das Skript aufrufen möchtest; dafür ist ja fmask da.Andererseits solltest Du das Skript schleunigst wegschmeißen, es ist nämlich ziemlich mies, kann ja nichtmal Dateien mit Leerzeichen verarbeiten.
Für was besseres frag einfach Freund Google oder freshmeat.net wenns was richtig umfangreiches sein soll.Ich dache C wäre (fast) das gleiche wie bash ?!
Cool, das sollte ich in meine Sig tun; das ist so ziemlich das falscheste was ich in den letzten Monaten hier gelesen habe.