# Nicht gentoo spezifisch - bash script ändern

## SvenFischer

Hallo,

wer würde mir bitte helfen - dieses Skript ändert Bilder und zickt manchmal rum:

1. Er meckert, wenn er nicht die Endungen findet - das ist noch zu verschmerzen

2. Mit Leerstellen kann das Script nicht umgehen und das nervt sehr.

```

rray='*.jpg *.JPG *.JPEG *.jpeg *.PNG *.png'

for f in $array;

do

    echo "Processing $f"

   ww=`convert $f -format "%[fx:.25*w]" info:`

   hh=`convert $f -format "%[fx:.25*h]" info:`

   composite -gravity southeast \( /home/sven/Documents/Aquarium/Logo_Korallen-Wiki.png -resize ${ww}x${hh} \) $f $f

        convert $f -quality 90% -resize 1024x768\>  $f

done

```

Vielen Dank

Sven

----------

## mv

2. Überall quoten: "$f" statt "$f". Auch Argument nach -resize quoten.

1. Am Schleifenanfang testen, ob "$f" existiert: test -r "$f" || continue

----------

## mastacloak

Wenn Dir POSIX-Konformität nicht ganz so wichtig ist und Du bash >= v2 verwendest, kannst Du um 1. zu unterbinden auch

```
shopt -s nullglob
```

vor der Schleife in Deinem Shellscript aufrufen. Dann werden alle Pattern die zu keinem Ergebnis führen kurzerhand entfernt.

----------

## SvenFischer

Hallo,

erstmal danke. Das mit den Leerzeichen funktioniert und ist eine enorme Hilfe!

Was nicht funktioniert ist das Abfangen der Fehlermeldungen:

 *Quote:*   

> 
> 
> ./sven: Zeile 12: Syntaxfehler beim unerwarteten Wort `test'
> 
> ./sven: Zeile 12: `test -r "$f" || continue'
> ...

 

Das Script sieht dann so aus:

```

array='*.jpg *.JPG *.JPEG *.jpeg *.PNG *.png'

for f in $array;

test -r "$f" || continue

do

    echo "Processing $f"

   ww=`convert "$f" -format "%[fx:.25*w]" info:`

   hh=`convert "$f" -format "%[fx:.25*h]" info:`

   composite -gravity southeast \( /home/sven/Documents/Aquarium/Logo_Korallen-Wiki.png -resize ${ww}x${hh} \) "$f" "$f"

        convert "$f" -quality 90% -resize 1024x768\>  "$f"

done
```

----------

## py-ro

Die test Zeile gehört nach dem do.

----------

## SvenFischer

Vielen Dank für Eure Hilfe!

----------

