Vyreseno: Bash konstrukce [[ "$a" == "b" ]] - Linux OK, Cygwin KO???
Martin Proks
proks na aerospace.fsik.cvut.cz
Pondělí Listopad 26 14:42:36 CET 2001
Zdravim,
Chyba byla u me. Ja predpokladal ze obecne bash == sh,
respektive ze "jakakoli" bash konstrukce projde v "jakemkoli"
POSIX shellu. Podminku [[ a == b ]] jsem tvoril ja jako pridany
test. Jak uz pan Pavel Kankovsky napsal, je to nestandardni
konstrukce, ted uz to vim.
Autoconf (version 2.13 z RH 7.1) jako takovy vytvari
korektni configure scripty. Pouziva vsude dusledne
if test ... ; then ...;, coz by snad melo byt dostatecne
univerzalni, alespon na linuxu RH 7.1 a cygwinu pod
WinNT a Win98 chodi. Nevim ale, co na to rekne napr. IRIX,
kde je tusim sh link na csh.
<noflame>
PS: ktery shell mohu povazovat za "syrovy" POSIX co funguje "vsude"
(ne jen v bashi) a jehoz konstrukce budou zarucene fungovat
i v csh, ksh, ....?
</noflame>
Dik za radu,
--
Martin Proks
mailto:proks na aerospace.fsik.cvut.cz
http://aerospace.fsik.cvut.cz/proks/
uhlar na fantomas.sk wrote:
> -> a) autoconf vytvori #!/bin/sh script. V linuxu (RH) sh -> bash,
> -> v cygwinu sh -> ash. V ash konstrukce [[ $a == "neco" ]] neprojde,
> -> musel jsem nahradit konstrukcema if [ ${a} = "neco" ]; then ....; fi
>
> tak to je jednosnacne chyba autoconfu. V ziadnom pripade NESMIE predpoklad
> ze sh = bash! a /bin/sh konstrukciu [[ ]] _nepozna_ a toto musi predpokladat
> kazdy kto tvori shell skripty. Ak potrebuje bash, nech pouziva /bin/bash.
Další informace o konferenci Linux