Egyik gép: $ set -x $ bash --version + bash --version GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc. $ [[ foo =~ bar\. ]] + [[ foo =~ bar. ]] $ [[ foo =~ 'bar\.' ]] + [[ foo =~ bar\. ]] $
Másik gép: $ set -x $ bash --version + bash --version GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. $ [[ foo =~ bar\. ]] + [[ foo =~ bar\. ]] $ [[ foo =~ 'bar\.' ]] + [[ foo =~ bar\\\. ]] $ Na, most ebből mókás hibák fakadnak, mikor az egyik vagy a másik gépen fut egy script. (Egy kollégám már faragott egy workaroundot, nem ez a kérdés.) Szemre nincs lényeges különbség az environmentben. Lehetséges-e, hogy ilyen durván megváltozott az =~ operátor jobb oldalára vonatkozó szabályozás, vagy mégis valami beállítható paraméter különbözik a két shellben? Vagy az egyikben bug van? Egy füst alatt kérnék visszajelzéseket! Kinél mit csinálnak a fenti parancsok? Pl. ez még rosszabb: $ bash --version + bash --version GNU bash, version 2.05b.0(1)-release (i386-redhat-linux-gnu) Copyright (C) 2002 Free Software Foundation, Inc. $ [[ foo =~ bar\. ]] bash: conditional binary operator expected bash: syntax error near `=~' $ [[ foo =~ 'bar\.' ]] bash: conditional binary operator expected bash: syntax error near `=~' $ De ez mondjuk deklaráltan nem ismeri az ~= operátort. kissg -- Mz mn fszm mhrmnc cntm, mk nm mhsz bvhmt. _________________________________________________ linux lista - linux@mlf.linux.rulez.org http://mlf2.linux.rulez.org/mailman/listinfo/linux