[linux-l] shell skript probleme mit leerzeichen

willek willek at gmx.de
Do Okt 27 16:40:45 CEST 2005


Morche Matthias schrieb:

> Einfach nur um alles, was ein $ vorn dran hat Gaensefuesschen drumrum
> und statt `ls` einfach *:
> #!/bin/bash
> # /usr/local/bin/verkleinere
> #
> # verkleinert Bilder im aktuellen Verzeichnis
> # auf 640x480 und speichert sie in Ordner
> # ./verkleinert unter dem angegebenen Suffix ab
> #
> # Aufruf: verkleinere <Dateiendung>
> mkdir verkleinert
> for i in *; do
> basename="${i%.*}"
> echo "$i" "$basename.$1"
> convert -resize 640x480 "$i" verkleinert/"$basename.$1"
> done
> 
Danke, das funktioniert, obwohl ich nicht verstehe warum. Warum reicht
in diesen Fall ein Stern aus, um alle Dateien einzulesen?

Und noch eine Verständnisfrage:
Ich wollte die Leerzeichen maskieren, etwa so:
for i in `ls |sed s/" "/"\\ "/g` ; do
warum hat das nicht funktioniert?

Und wie schaffe ich es beispielsweise, nur Bilddateien konvertieren zu
lassen? So wie mein und Dein skript jetzt sind versuchen sie alles zu
fressen, unabhängig davon, um  welche Art von Datei es sich handelt.
Irgendwie noch eine schleife, die vor der übergabe an die Variable alle
Dateien darauf prüft, ob sie Bilddateien sind? hmm müsste mit "file"
gehen. oder irgend ein grep oder ein Parameter von ls Ich werd mal die
man-pages studieren.

Skripten ist irgendwie eine Droge... man kommt nich weg davon...
und je mehr man konsumiert, umso abhängiger wird man ;-)

fröhliches winken
Lutz



Mehr Informationen über die Mailingliste linux-l