![](https://seccdn.libravatar.org/avatar/7b33cb1e776e35b87edb8ef09f0c888f.jpg?s=120&d=mm&r=g)
Hallo, Am Tue, 19 Oct 2004, Helga Fischer schrieb:
Am Dienstag 19 Oktober 2004 13:52 schrieb Rupert Kolb:
Rupert Kolb schrieb:
richtig sollte sein:
... || { echo "$DDCLIENT_BIN not installed"; exit 5; } ^ ^ ^ ^ whitespace Whitespace ^ Semikolon (ich habe damit auch schon gekämpft)
Der Whitespace nach der öffnenden Klammer ist notwendig, ebenso wie das Semikolon vor der schließenden Klammer. Ein Whitespace vor oder nach der schließenden Klammer ist aber nicht notwendig (der vorher, weil die Bash am Semikolon die Tokens trennt). $ { echo foo;} foo Das geht auch so aus der manpage hervor: { list; } list is simply executed in the current shell envi ronment. list must be terminated with a newline or semicolon. Man beachte hier den letzten Satz.
# Check for existence of needed config file and read it DDCLIENT_CONFIG=/etc/ddclient.conf test -r $DDCLIENT_CONFIG || {echo "$DDCLIENT_CONFIG not existing"; exit 6}
s.o. Richtig: test -r $DDCLIENT_CONFIG || { echo "$DDCLIENT_CONFIG not existing" >&2 exit 6 } Oder: test -r $DDCLIENT_CONFIG \ || { echo "$DDCLIENT_CONFIG not existing" >&2; exit 6; } Generell gilt: Semikolon und Zeilenumbruch sind äquivalent. Ein maskierter (mit '\' abgeschlossener) Zeilenumbruch ist aber keiner!
. $FOO_CONFIG
Hier ist FOO_CONFIG sicher nicht gesetzt, was durchaus den anderen Fehler verursachen könnte. -dnh -- Censorship sucks^W is for your own good.