Re: OT: set -e in shell script

From: Patrick Hess <patrickhess(at)gmx.net>
Date: Sat, 9 Aug 2014 21:56:21 +0200

Manfred Lotz schrieb:
> Patrick Hess <patrickhess(at)gmx.net> wrote:
> > Kann mir auch kein Beispiel in der Praxis vorstellen, bei dem das
> > von dir erwartete Verhalten sinnvoll wäre.
> Aber ja doch. Ich will etwas ausführen, wenn ein Command gut geht.
>
> Dafür kann man so was machen:
>
>    test -f "/bla" &&  do_something "/bla"

Das ist bei dir ein Praxisbeispiel!? Ich will doch nicht hoffen,
dass irgendjemand in der Praxis tatsächlich solchen Code schreibt,
bei dem man nicht mal ansatzweise erahnen kann, was er tun soll.

Aber gut, dann helfe ich hier mal kurz aus. Zuletzt habe ich
sinngemäß etwa so was geschrieben:

   test -f user_config_file && source user_config_file

Falls die optionale "user_config_file" existiert, überschreiben die
darin gesetzten Einstellungen (= Variablen) die entsprechenden
globalen Einstellungen, die zuvor aus der "global_config_file"
gelesen wurden. (*Das* ist meiner Meinung nach ein Beispiel,
welches in der Praxis auch tatsächlich vorkommt.)

> dann will ich ja, dass Fehler zum Abbruch führen.

Warum sollte es im obigen Beispiel ein Fehler sein, wenn die
"user_config_file" nicht existiert? Die Existenz dieser Datei
ist optional. Wenn sie nicht existiert, werden eben die globalen
Einstellungen verwendet. Für den weiteren Programmablauf ist
diese Datei jedenfalls nicht notwendig.

Das Skript in diesem Fall abzubrechen, ergäbe keinen Sinn.
Im Grunde würde ein solches Verhalten den &&-Operator ja
völlig ad absurdum führen. Und genau deshalb macht die Shell
das zum Glück auch nicht so. ;-)

Viele Grüße,
Patrick

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 09 Aug 2014 - 21:56:42 CEST

search this site