Re: awk buggy?

From: Marc Santhoff <M.Santhoff(at)t-online.de>
Date: 19 Jun 2003 20:59:22 +0200

Tag auch!

Am Do, 2003-06-19 um 13.05 schrieb Oliver Fromme:
> Marc Santhoff <M.Santhoff(at)t-online.de> wrote:
> > Am Mi, 2003-06-18 um 20.23 schrieb Joerg Over Dexia:
> > > In Deinem Skript ist das für awk aber nicht als Stringkonstante
> > > erkennbar.
> > > (Wie sollte der das sonst vonner variablen unterscheiden?)
> >
> > Stimmt auffallend, ich bin wohl verwöhnt von anderen Sprachen, die
> > explizite Deklaration der Variablen verlangen. DAmit wäre das nicht
> > passiert.
>
> Das ist bei Skriptsprachen (leider) üblich. Das ist in
> perl und sh (per default) nicht anders. Python ist da
> schon deutlich besser, meiner Meinung nach, aber Python
> befindet sich auch schon in der Grauzone zwischen Skript-
> Sprache und »richtiger« Programmiersprache.

Ja, weiß ich natürlich. Ich mach's nur zu selten, sonst wäre mir das
nicht passiert.

> Übrigens, kleiner Tip zum Debuggen von awk-Skripten:
> In den Ports gibt es »awka«. Das ist ein awk-Compiler,
> der awk-Skripte nach ANSI-C übersetzt, aus denen dann
> ein richtiges Binary compiliert werden kann. Was aber
> viel wichtiger ist: awka hat eine äußerst nützliche
> Fehlerbehandlung und findet Probleme, die andere awk-
> Implementationen nicht finden. Unter anderem kann man
> auch mit Hilfe spezieller Kommentarzeilen Variablen
> »deklarieren« und sich Warnungen geben lassen, wenn man
> versucht, eine Variable zu benutzen, für die es keine
> solche Deklaration gibt.

Das ist ein wirklich guter Tip, das werd' ich wohl auch für kleinere
SAchen benutzen. Nützt auch, wenn ein Skript mit root-Rechten laufen
soll.

> Wenn ich ein umfangreicheres awk-Skript schreibe, lasse
> ich es grundsätzlich einmal durch awka laufen, um po-
> tentielle Problemquellen zu finden, quasi als eine Art
> »awk-lint«. Das hat sich sehr gut bewährt.

Ich habe vor sechs Jahren mal einen Satz Skripte zur Aufbereitung von
Meßdaten für awk schreiben müssen, seitdem eigentlich nur mal 'nen
Einzeiler für Aufgaben, die sich mit der Shell nicht erschlagen lassen.
Aber es ist halt praktisch und schnell zur Hand (vor allem wenn man, wie
ich, immer noch kein perl spricht ...).

Danke sehr,
Marc

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 19 Jun 2003 - 21:29:43 CEST

search this site