Datei-Namen mit Leerzeichen in der BASH

Ich versuche, ein Skript schreiben werde, die Ernte und die Größe von großen Fotos in HD Wallpaper.

#! /bin/bash


for i in `ls *.jpg`
do
    width=`identify -format '%w' $i`
    height=`identify -format '%h' $i`

    if [ `echo "$width/$height > 16/9" | bc -l` ]
    then
        exec `convert $i -resize 1920 -gravity Center -crop '1920x1080+0+0' +repage temp`
    else
        exec `convert $i -resize x1080 -gravity Center -crop 1920x1080+0+0 +repage temp`
    fi

    rm $i
    mv temp $i
done

Aber es scheint, dass das script Probleme mit Dateinamen mit Leerzeichen (wie Wäschetrockner Weed.jpg). Wie kann ich dieses Problem beheben?

Die Antwort wurde bereits gegeben unten, aber ich möchte nur hinzufügen, dass shell-scripting ist wirklich schlecht für die Handhabung von Leerzeichen in Dateinamen, weil so viele Listen sind durch Leerzeichen getrennt - vor allem Argumente. Kopieren Sie eine Datei mit Leerzeichen via scp zum Beispiel! Es ist fast unmöglich, ohne manuelle entkommen.
Lesen Sie http://mywiki.wooledge.org/BashPitfalls in seiner Gesamtheit 🙂 es wird drastisch verbessern Sie Ihre bash-Fähigkeiten

InformationsquelleAutor finemann | 2010-10-19

Schreibe einen Kommentar