PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash-Skript / ImageMagick hängt


Ganon
2010-06-04, 19:21:14
Heyho.

Ich weiß jetzt nicht, ob das hier der richtige Bereich ist, aber ich habe hier gerade ein Bash-Skript.


for file in Grundtiles/*; do
if [ -f "$file" ]; then
mkdir -p "pass/$file"
for file2 in *; do
if [ -f "$file2" ]; then
echo "$file" "$file2"
diff=$(compare -dissimilarity-threshold 1 -metric AE "$file" "$file2" diff.png 2>&1)
if [ $diff -eq 0 ]; then
mv $file2 pass/$file/
rm diff.png
fi
fi
done
fi
done


Im Prinzip hab ich einen Ordner mit ca. 100 Bildern. In einem anderen Ordner habe ich ca. 5000 Bilder. Jetzt will ich die Bilder halt vergleichen und gucken, welche identisch sind, und dieses halt bewegen. Quasi einsortieren, welche der 5000 Bilder passen zu den 100.

Jetzt hab ich nur das Problem, dass der Vorgang in unregelmäßigen Abständen einfach stehen bleibt. Der Prozess "compare" läuft dann mit hoher CPU-Last, und es passiert nichts. Ich muss ihn dann beenden, dann geht es weiter.

Liegt das am Skript, oder was könnte das verursachen? An den Bildern kann es wohl nicht liegen, da der Hänger eben unregelmäßig ist. Es bleibt also nicht immer bei den gleichen Bildern hängen.

Ist jetzt nicht kritisch, aber vllt. mache ich ja was falsch?

Gast
2010-06-04, 21:16:51
es ist nicht unbedingt logisch, aber vielleicht wartet die zuweisung zur variablen diff irgendwie nicht ab, bis compare fertig gelaufen ist? könntest einfach compare aufrufen, ohne das ergebnis ner variablen zuzuweisen, und dann if [ $? -eq 0 ]; then versuchen...

Ganon
2010-06-04, 21:44:50
Also ich hab das Ganze jetzt mal auf einem anderen System laufen lassen und da geht's. Scheint also wohl ein Problem mit der ImageMagick-Installation auf meinem System zu sein, oder irgend sowas.