Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateilesen & weiterverarbeiten
caller1982
20.05.2005, 18:51
Hallo, ich hab bei folgendem Skript
#!/bin/sh
echo "Alte temporaere PS-Files loeschen..."
echo "Loeschen der Alten Versionsliste & neu erstellen"
echo '' > lyxliste.size
while read line
do
echo $line
ls -la $line >> lyxliste.size
done < lyxliste
folgende Ausgabe:
....
/home/caller/Documents/Darmstadt/Modellierung/FS-Modellierung-SS05.lyx
: Datei oder Verzeichnis nicht gefundendellierung/FS-Modellierung-SS05.lyx
....
Ich habe keine Ahnung warum das ls-la nicht geht, direkt in der Kommandozeile geht der Befehl
DANKE FÜR TIPPS
Marco
Bei mir läuft dein Script ohne Fehlermeldungen, sobald ich in lyxliste eine existierende Datei angebe. Ist die Fehlermeldung tatsächlich so verstümmelt (beginnend mit : und nur der halbe Dateiname)?
caller1982
20.05.2005, 19:33
Hast du (oder wer anderes) eine idee, woran das liegen könnte, bzw. wie mann es besser macht?
Keine Ahnung was da schief läuft. Wie gesagt, bei mir tuts das Script ja. Die Frage wie man es besser macht, kann ich erst beantworten, wenn ich weiß welche Aufgabe mit diesem Script gelöst werden soll.
caller1982
20.05.2005, 20:25
Also:
Ich schreibe regelmäßig diverse LyX Dateien (ein WYSIWYM) Frontend für LaTeX.
Dieses Skript soll nun überprüfen, od die Dateien sich set dem letzten start verändert haben, und die geänderten neu compilieren und ins Netz uploaden
Das ganze skript soll in etwa so aussehen
#!/bin/sh
echo "Fuer jede Datei prufen ob sie noch aktuell ist. Wenn nicht neues PDF und HTML erstellen und uploaden"
while read line
do
echo Ueberpruefen von: $line .lyx
if (test (ls -la $line .lyx) -ne (less lyxliste.size | grep $line .lyx)); then
echo pdf und HTML neu erstellen
~/Documents/LyX/lyxport-0.3/lyxport $line
echo uploaden
sed -e "s/OOO/$line/g" ~/bin/upload.ftpCommands > "$line.tmp"
lftp "$line.tmp"
rm "$line.tmp"
else
echo ok
fi
done < lyxliste
echo "Loeschen der Alten Versionsliste & neu erstellen"
echo '' > lyxliste.size
while read line
do
echo $line .lyx
ls -la $line .lyx >> lyxliste.size
done < lyxliste
Wie könnte man soetwas alternativ umsetzen?
Zur Überprüfung der Integrität der lyx Dateien würde ich md5sum nutzen. In einem einmalig auszuführenden ersten Schritt muss für jede zu überwachende Datei eine Prüfsumme mit md5sum gebildet werden:
md5sum Dateiname > Dateiname.md5
Nachdem diese Vorarbeit geleistet wurde, kann jetzt ein Script alle *.md5 Dateien auf gültige Hashes überprüfen.
md5sum --check Dateiname.md5
Immer dann, wenn eine der zu überwachenden Dateien geändert wurde, steht nach Ausführung dieses Kommandos in $? (Exitstatus des letzten Vordergrund Kommandos) eine 1. Andernfalls eine 0.
Im Falle einer 1 in $? wird die so ermittelte Datei nach Gusto verarbeitet, und der neue Hash in die zugehörige .md5 Datei geschrieben.
Auf diese Weise entfällt die Notwendgkeit, die Liste der zu überwachenden Dateien zwei Mal abzuarbeiten. Auch auf die Datei lyxliste kann dann verzichtet werden.
Powered by vBulletin® Version 4.2.0 Copyright ©2013 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.