[linux-l] bash: [[ vs. [

Oswald Buddenhagen ossi at kde.org
Fr Mai 16 16:39:40 CEST 2003


On Fri, May 16, 2003 at 04:03:00PM +0200, Jan-Benedict Glaw wrote:
> > darum ging es nicht. wenn meine variablen bestimmten unerwarteten
> > inhalt haben, dann hab ich mit anführungszeichen die "silent
> > fail"-situation, während ohne diese sich die shell gleich beschwert.
> > in diesem sinne ist der minimalistische ansatz der fehlererkennung
> > dienlich.
> 
> 'tschuldigung, aber: SO EIN SCHWACHSINN!

> Das wäre so, als ob Du es in einem C-Programm legitim fänden würdest,
> wenn es SIGSEGV'ed, wenn man falsche Eingaben macht.
>
was ich auch tue. mir ist ein sigsegv mit einem klaren backtrace (bzw,
ein syntax error von der shell) wesentlich lieber, als eine
fehlfunktion, zersägte daten und nicht mal der ansatz eines hinweises,
wo das problem liegt.

> Besser, gehe _immer_ davon aus, daß Du Scheiße eingefüttert bekommst.
>
ja, besonders von meinem eigenen code zwei zeilen drüber. man kann auch
paranoid sein ...

> Heute sind wir ja netterweise in der Lage, ab und zu mal ein Stückchen
> Source-Code zu recyclen. Innerhalb Deines Programmes können gewisse
> Annahmen über die möglichen Parameter ja stimmen. Aber was, wenn eine
> Funktion aus diesem Kontext herausgerissen wird und nun mit ganz anderen
> Sachen gefüttert wird? Also - besser gleich "richtig" machen.
> 
wenn ich daran erinnern darf: wir sprechen hier von shell-scripten. in
diesem kontext von modularisierung, etc. zu sprechen, grenzt schon an
lächerlichkeit.

und so ganz allgemein gesagt: entweder man geht davon aus, daß die
parameter sinnvoll sind und verarbeitet sie ohne bedenken, oder man
geht nicht davon aus und validiert sie vorher, um dann wieder bei
der ersten situation anzugelangen. die eigentliche logik mit workarounds
für fehlerhafte eingaben zu verunstalten ist einfach nur krank.

'nacht

-- 
Hi! I'm a .signature virus! Copy me into your ~/.signature, please!
--
Chaos, panic, and disorder - my work here is done.



Mehr Informationen über die Mailingliste linux-l