[devel] bash4
Alexey Tourbin
at на altlinux.ru
Пт Авг 13 15:43:21 UTC 2010
On Fri, Aug 13, 2010 at 04:48:47PM +0400, Денис Смирнов wrote:
> DVL> Там, наверное, написана большая простыня о том, почему башизмы -- это зло.
> DVL> К сожалению, там не написано, почему мечта сделать все shell-скрипты
> DVL> portable недостижима, а получающиеся промежуточные результаты
> DVL> трудночитаемы. Желающим помечтать могу предложить ознакомиться с
> DVL> $ info -f autoconf portable
>
> Не вижу ничего плохого в башизмах, если скрипт явно использует /bin/bash
Также нет ничего плохого, если башизмы используются в скриптах /bin/sh.
Особенно если это оправдано эргономически. Потому что скрипты пишут не
боги, а кто их пишет им лень. Если башизм экономит время, есть смысл
его оставить.
К тому же например shell functions появились только в SVR2. То есть
такого понятия как "чистый Борн шелл" (восходящий к v7) просто нет.
А POSIX/SUSv3 шелл уже впитал в себя башизмы. :)
Кстати говорят есть какой-то POSIX:2008.
Думаю фирме альт лнукс он не по карману.
Есть ещё одна нехорошая засада - у нас /bin/sh и /bin/bash собраны
в очень разной конфигурации: у них отличается синтаксис. Я ставил
этот вопрос ещё 6 лет назад!
$ 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)'
$ bash -c 'diff <(echo a) <(echo b)'
1c1
< a
---
> b
$
То есть проблема не только в башизмах. А проблема в том, что существуют
некоторые неопределенные слои башизмов, которые то ли работают, то ли не
работают, то ли хер их знает...
Подробная информация о списке рассылки Devel