[devel] bash4

Alexey Tourbin at на altlinux.ru
Пт Авг 13 19:43:31 UTC 2010


On Fri, Aug 13, 2010 at 10:30:16PM +0400, Sergey Vlasov wrote:
> Это не конфигурация, а документированная зависимость поведения bash от
> имени, использованного при вызове, и отключение поддержки process
> substitution в режиме совместимости с POSIX (документировано только в
> info bash, в man в явном виде не описано):
> 
> $ bash --posix -c 'diff <(echo a) <(echo b)'
> bash: -c: line 0: syntax error near unexpected token `('
> bash: -c: line 0: `diff <(echo a) <(echo b)'
> $ ln -s /bin/bash sh; ./sh -c 'diff <(echo a) <(echo b)'
> ./sh: -c: line 0: syntax error near unexpected token `('
> ./sh: -c: line 0: `diff <(echo a) <(echo b)'
> $ sh -c 'set +o posix
> diff <(echo a) <(echo b)'
> 1c1
> < a
> ---
> > b
> 
> (в последнем случае нужно именно \n в строке, через разделитель ';'
> не сработает - видимо, переключение опции posix происходит только при
> разборе следующей строки).

Hmm, this sheds some light onto why /bin/sh and /bin/bash are different.
However, I feel the difference is rather unfortunate.  Also, I wonder
if there are other differences involved when changing essentialy the
same shell from /bin/sh to /bin/bash and vice versa.

If you play this stuff backwards, it says 'This sucks!'


Подробная информация о списке рассылки Devel