ubuntuusers.de

ghostscript und for loop

Status: Ungelöst | Ubuntu-Version: Ubuntu 14.04 (Trusty Tahr)
Antworten |

keepalive

Anmeldungsdatum:
24. März 2009

Beiträge: 66

Hallo, ich möchte alle PDF-Dateien in einem Ordner durch ghostscript jagen und dadurch die DPI Anzahl verringern. Mein Script funktioniert nur leider nicht, es legt lediglich eine re_ Datei an. Wo ist mein Fehler?

1
2
3
4
5
6
#!/bin/bash

for i in $(ls *.pdf); 
do 
	gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=re_$1 $1;
done

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

$1 ist der erste Parameter des Shellskripts, also zB:

1
$ ./example.sh foo

dann ist $1 gleich foo.

In deiner Schleife ist die Laufvariable i, also willst du hier $i verwenden.

keepalive

(Themenstarter)

Anmeldungsdatum:
24. März 2009

Beiträge: 66

Oh man, na klar! 😀 Vielen Dank.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

keepalive schrieb:

Außerdem: Useless use of ls:

1
2
3
#!/bin/bash

for i in $(ls *.pdf); 

Besser:

1
2
3
4
5
 #!/bin/bash
 
 for i in *.pdf
 
 

Ersteres stolpert über Leerzeichen und ähnliches. Semikolon ist auch nur nötig, wenn Du in der gleichen Zeile fortsetzt, sonst tut es der Zeilenumbruch.

Antworten |