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

Ihno Krumreich ihno at lst.de
Fr Mai 16 16:44:43 CEST 2003


On Fri, May 16, 2003 at 03:34:18PM +0200, Oswald Buddenhagen wrote:
> On Fri, May 16, 2003 at 03:00:32PM +0200, Ihno Krumreich wrote:
> > > > man kann auch "[ $A = 1 -a $B = 1 ]" schreiben. 
> > > > 
> > > kann man nicht. basta.
> > > zur portablen shell-programmierung empfehle ich ich ein studium der
> > > autoconf-info-page. vorsicht: kotztüte bereithalten.
> > 
> > Warum nicht?
> > 
> > - die shell beschwert sich nicht.
> >
> _deine_ shell vielleicht nicht. gut, du kannst mich jetzt kaltstellen,
> indem du sagt, daß das hier eine linux-liste ist und folglich nur
> linux-shells relevant sind.

Ich lerne gerne etwas dazu. Ich habe auch nicht vor dich kaltzustellen.
Ich habe durchaus auch mit anderen Systemen gearbeitet (System V
3.2/4.0, Solaris, VAX VMS, OS390...).

Bourne-Shell-kompatible Shells koennen es und die xpg4-konforme Shell
auf Solaris (xpg4 enthaelt POSIX) kann es auch. Das in der autoconf-Doku
genannte Problem (die Auswertereihenfolge von -a und -o) kenne ich
nicht, da ich in einem solchen Fall IMMER Klammern setze. Der Grund
liegt darin, das verschiedene Programmiersprachen (und damit meine ich nicht
nur die Shellscript Sprachen) nicht immer die gleiche
Logik haben mit der so etwas ausgewertet wird. Und da ich meine schlechten
Erfahrungen schon gemacht habe, setze ich Klammern.

> 
> > Da die autoconf-Seite zu den kleinen und uebersichtlichen gehoert
> > (das Inhaltverzeichnis hat 318 Zeilen) waere ein kurzer Hinweis
> > wo dazu was im autoconf steht nicht schlecht.
> >
> Node "Shellology" ff.
> im hauptindex nach "shell" suchen und paar mal "find next" aufrufen -
> unheimlich schwer ...

Natuerlich nicht. Vielen Dank fuer den Hinweis.

> 
> > > > und dann gibt's da noch den kleinen, feinen Unterschied, daß einige
> > > > test's "=" und andere "==" wollen,
> > > >
> > > das halte ich für ein gerücht - dann würde ja gar nix mehr
> > > funktionieren. = ist korrekt. == ist eine extension, die von diversen
> > > shells "reingesaugt" wurde (um die dummen c-programmierer glücklich zu
> > > machen :).
> > 
> > Es ist die Frage was mal will.
> >
> ist es nicht.
> 
> > Verwendet man [[
> >
> davon reden wir aber nicht. in diesem absatz ging es um test/[.
> 
> 'nacht - oh, moment, es ist ja erst nachmittag ...

Wohl zu lange die Mondfinsternis angesehen......

Ihno




Mehr Informationen über die Mailingliste linux-l