Hi Jens,
> name=$(echo $i | cut -f1 -d".")
Vorsicht.
1) Bei dieser Definition des neuen Namens (Abschneiden nach dem ersten ".") wird aus "1. Advent.ps.pdf" dann ein "1.pdf" -- schon klar, oder? Wenn Du dann noch drandenkst, daß Dir der scriptsrv die Dateinamen mit einem kompletten Pfad übergibt, dann kann einem schon fast schlecht werden: Aus "/mein/1. pfad/mein.ps.pdf" wird dadurch "/mein/1.pdf"... Das kann böse ins Auge gehen. Darum sollte man Skripte auch nie gleich scharfschalten sondern erstmal nur die Ausgaben in die scriptsrv Logdatei protokollieren lassen. Alles andere ist ein ziemlicher Blindflug mit riskanten Folgen...
2) Dateinamen können auch Leerzeichen enthalten. Also benötigt man entsprechende Vorkehrungen, damit nicht aus einem Namen "Test Datei" auf einmal zwei werden (da Leerzeichen in der Shell ein Variablentrenner sind). D.h. man muß alle Variablen permanent in Anführungszeichen setzen! Ansonsten kannst Du Dir problemlos riesige Probleme einhandeln!
Zur Funktionsweise des scriptsrv an sich: der Scriptserver überwacht, wie Du schon treffend bemerkt hast, ganze Ordnerhierarchien ausgehend von dem in ES Admin angegebenen Verzeichnis.
Schlägt eine neue Datei auf, so wird das Skript ausgeführt. Das Skript bekommt den Pfad zu der Datei als Parameter übergeben. Zus. kannst Du mittels der "scriptsrv.conf" auch noch sog. Umgebungsvariablen übergeben (aber das führt jetzt zu weit). Das alles ist aber auch in der Doku zum scriptsrv aufgeführt. Warum liest eigentlich niemand die Doku?
Zum Handling der Dateien an sich: Du fragst, ob Du die Datei im .rsrc-Ordner ebenfalls anfassen sollst. Laß am Besten komplett die Hände von der Unix-Seite bis Du Dir die EtherShare-Doku durchgelesen hast! Denn Du darfst keinesfalls da mit irgendwelchen Befehlen rumfummeln, solange Dir nicht klar ist, wie EtherShare Unix- und Mac-Welt verheiratet (also Dateien im .rsrc-Unterordner und die sog. "Desktop Database" je Volume). Oberste Regel ist: IMMER die Desktop Utilities verwenden! Hintergründiges dazu bspw. hier:
http://www.kaiser-edv.de/...ation-in-shares.html Für die Vertiefung des Ganzen ist es aber unbedingt notwendig, daß Du die Doku von Helios durchliest. Sonst kommt erst der Server und dann hoffentlich Du in Teufels Küche :-)
Zum Skript zurück:
Dein Skript bekommt also den Pfad zur Datei als $1 übergeben und soll einen neuen Namen herausfinden:
#!/bin/sh
MyFile="$1"
MyNewName="$(echo "${MyFile}" | sed 's/\.[a-z]*\.pdf$/.pdf/g')"
Dann *muß* es mit den Desktop Utilities arbeiten, d.h. herausfinden, wo die Helios-Installation liegt und ob die Annahme stimmt. Falls nicht, Abbruch
read HELIOSDIR </etc/HELIOSInstallPath
test -x "${HELIOSDIR}"/bin/dt || (echo "Kann DT nicht finden" >&2; exit 1)
Und falls alles paßt, dann eben die Datei umbenennen:
"${HELIOSDIR}"/bin/dt mv "${MyFile}" "${MyNewName}"
Fertig. Zum Thema: "Skripte für lau"... Das ist möglich, aber es setzt voraus, daß Du eine Menge Zeit einbringst. Die Zeit, die Doku zu lesen, die Zeit, Dir Skripting beizubringen. Da wird der Dienstleister günstiger kommen, wenn Du nicht eh vorhast, Dir das Arbeitsleben mit bisserl Skripting zu erleichtern ;-)
Gruss,
Thomas
--
http://kaiser-edv.de/news/