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

Jan-Benedict Glaw jbglaw at lug-owl.de
Do Mai 15 16:05:22 CEST 2003


On Thu, 2003-05-15 08:24:09 +0200, Steffen Dettmer <steffen at dett.de>
wrote in message <20030515082408.D3311 at dx.net.de>:
> * Jan-Benedict Glaw wrote on Wed, May 14, 2003 at 10:21 +0200:
> > On Wed, 2003-05-14 09:36:52 +0200, Baerwaldt, Ralf <Ralf.Baerwaldt at Dresdner-Bank.com>
> > wrote in message <14FE9BE2E623D611B7A40008C75D99B002A9F430 at ffz00za6.ffz00e.mail.dresdner.net>:
> > > Hallo !
> > > 
> > > Kann mir jemand den Unterschied zwischen den
> > > beiden Testkonditionen [[ ... ]] und [ ... ]
> > > erklaeren ?
> > 
> > $ man 7 regex
> > 
> > [[...]] wird benutzt, um vordefinierte Zeichenmengen zu testen. 
> 
> Laut man page ist das ein boolean Ausdruck. Wie verwendet man
> das? [[1==2]] && echo "no" geht nicht. Ich verwende sonst meist
> $[], also $[4==5] usw. Wie wendet man beide eigentlich an?

Ach, ja, eh, andere Baustelle. Ich meinte:

$ echo -e "hallo\n123\nha123"|grep '[[:digit:]]'
123
ha123

vs.

$ echo -e "hallo\n123\nha123"|grep '[la]'
hallo
ha123


In der Shell arbeitet das ähnlich wie in C:

$ A=1
$ B=0
$ if [[ $A == 1 && $B == 1 ]]; then echo beide; fi
$ B=1
$ if [[ $A == 1 && $B == 1 ]]; then echo beide; fi
beide

Die Schreibweise "$[4==5]" ist mir allerdings ungeläufig und in der mab
page finde ich dazu auch nix...

> > [...]
> > wird benutzt, um selbstdefinierte Mengen zu testen.
> 
> Hab das in man bash nicht gefunden, nur bei
> und for file in  [] usw. $[6+7] ist ja artithmetic Ausdruck,
> warum behauptet man page, daß müsse [[]] sein? 

Ja, wir haben aneinander vorbeigesprochen...

> Bin verwirrt (hätte die manpage lieber nicht lesen sollen :-))...

Das kann ich verstehen:) Ich hab' sie mir vor einiger Zeit mal
ausgedruckt und finde jeden Tag noch neue Dinge, die ich da lernen
kann:)

MfG, JBG

-- 
   Jan-Benedict Glaw       jbglaw at lug-owl.de    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
      ret = do_actions((curr | FREE_SPEECH) & ~(IRAQ_WAR_2 | DRM | TCPA));
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: nicht verfügbar
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20030515/a081ec42/attachment.sig>


Mehr Informationen über die Mailingliste linux-l