[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