[gelöst] erstes bash-script -

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
arl
Beiträge: 11
Registriert: 15.08.2006 17:33:35
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Hamburg
Kontaktdaten:

[gelöst] erstes bash-script -

Beitrag von arl » 15.01.2008 07:56:48

Hallo und guten morgen liebe Debian-Gemeinde,

ich bin gerade dabei mich in Debian einzuarbeiten. Und da gehört für mich auch dazu, dass ich lerne wie man bash-Skripte schreibt. Daher sitze ich gerade an meinem ersten. Und stoße natürlich gleich auf Probleme.

Das Skript habe ich hier mal online gestellt: http://nopaste.debianforum.de/7300

Meine Überlegung war, dass

Code: Alles auswählen

ls $SOURCE_DIR/*.pdf
als Rückgabewert 1 liefert wenn min. ein PDF-Dokument in dem Verzeichnis liegt und 0 wenn kein PDF vorhanden ist. Dann sollte doch bei 1 der then-Zweig ausgeführt werden und bei 0 der else-Zweig, oder?

Wie ihr euch denken könnt ist dies natürlich nicht der Fall. Beim Ausführen bekomme ich immer den folgenden Fehler:

Code: Alles auswählen

line 11: [: too many arguments
Ich denke, dass erfahrende Coder längst wissen woren es liegt. Ich komme einfach nicht auf die richtige if-Abfrage. Daher wäre ich dankbar, wenn mir jemand einen Tipp mit einen kleinen Erklärung geben könnte. Ich hoffe so einen Schritt weiter zu kommen.

Vielen Dank schonmal für eure Hilfe.

Gruß aus Hamburg

Alex

ps. den Vertipper bei der Nopaste-Überschrift habe ich gesehen aber ich weiß nicht wie man den nachträglich ändern kann.
Zuletzt geändert von arl am 15.01.2008 09:40:28, insgesamt 1-mal geändert.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 15.01.2008 08:08:18

Du könntest das Problem z.B. so lösen:

Code: Alles auswählen

if [ $(ls $SOURCE_DIR/*.pdf| wc -l) -ge 1 ]
then
...
So zählst du mit wc -l die Anzahl der Dateien im Verzeichnis und führst den then-Zweig aus, wenn die Anzahl größer oder gleich 1 ist.

Ansonsten kann man auch oft den test-Operator verwenden. Den könntest du dir auch mal anschauen.
Oh, yeah!

Benutzeravatar
arl
Beiträge: 11
Registriert: 15.08.2006 17:33:35
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Hamburg
Kontaktdaten:

Beitrag von arl » 15.01.2008 09:39:54

Hallo Daniel,

danke für den Tipp das funktioniert fürs erste.

Ich werde mir den "Test-Operator" mal anschauen.

Vielen Dank nochmal!

Gruß aus Hamburg

Alex

Antworten