Vyreseno: Bash konstrukce [[ "$a" == "b" ]] - Linux OK, Cygwin KO???

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Sobota Listopad 24 18:38:13 CET 2001


On Fri, 23 Nov 2001, Martin Proks wrote:

> b) v configure.in nesmi byt zapsano if [ ${a} = "neco" ]; then ...,
> protoze autoconf "pozere" jedny zavorky a vyprodukuje if ${a} =
> "neco"; then ... Docela podpasovka, nejak jsem to v infu nenasel nebo
> prehledl.

Prehledl (viz info autoconf, Testing Values and Files): 

   The `test' program is the way to perform many file and string tests.
It is often invoked by the alternate name `[', but using that name in
Autoconf code is asking for trouble since it is an `m4' quote character.
                                                        ^^^^^
> Takze jsem musel zdvojit v configure.in zavorky [[ ]] a je to OK.

[[ ]] je krajne nestandardni konstrukce (kterou by tedy mezi nami nemel
vubec bash rozeznat, kdyz je vyvolan jak /bin/sh). Takze to neni OK.
Ostatne jste si sam na tom nabil usta. Lepsi je [ ], coz tam muzete
dostat, kdyz docasne zmenite quote characters, napr.

changequote(<<, >>)dnl
<<if [ a = b ]; then ahoj; fi>>
changequote([, ])dnl

Detaily hledejte v manualu k m4. Ale vubec nejlepsi je pouzit test, byt
je to pak o neco mene vizualne atraktivni (ty hranate zavorky prece jen
pekne vyznacuji testovanou podminku).

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."




Další informace o konferenci Linux