On Tue, Oct 01, 2019 at 06:10:05PM +0300, Andrey Jr. Melnikov wrote: > Vladimir Zhbanov <vzhba...@gmail.com> wrote: > > On Sun, Sep 29, 2019 at 10:50:02PM +0300, Andrey Jr. Melnikov wrote: > > ... > > > PS: Спор то ниочем. Из всех шеллов, которые есть в природе - 95% замшелый > > > шлак, > > > сохраняющий совместимость с тем, что уже давно померло. Да, это наверное > > > круто, что написанный сейчас xdg-open можно запустить на тазике 1992 года > > > выпуска. Только вот нахрена? И что он там сделает? > > > Если бы все люди предпочитали одинаковые горшки :-( Но кто-то > > запускает ту же самую хрень на Debian, кто-то на Gentoo, Guix, > > *BSD... А потом боремся с башизмами. И сколько времени и нервов > > тратится... > > Тут всё наоборот. Есть "одинаковые горшки" - POSIX. И его адепты. > > Одни ходят в крестовые походы против bash'измов/xsi'змов и прочих расширений > - > ибо ересь и нестандарт. > > Другие - академично написали по POSIX-compliant shell 20-30 лет назад и > теперь его поддерживают, сдувая пыль и паутину. Отклонениния от POSIX - > ни-ни, ересь! Вторая вариация - "минимальные" шеллы из busybox & co. > > Третьи - пишут на всём этом скрипты, бережно сохраняя совместимость с > замшелыми комерческими юниксами, busybox'ами и прочей теоретически > встерчающейся в природе фигней. > Только вот их скрипты там никогда не будут запускаться. > > PS: Вот хорошая ссылка про bashism's: https://mywiki.wooledge.org/Bashism > можно посчитать, сколько нужных вещей отсутсвуют в POSIX (и dash). > А если вчитаться в > https://askubuntu.com/questions/976485/what-is-the-point-of-sh-being-linked-to-dash > и https://wiki.ubuntu.com/DashAsBinSh то упорная борьба с башизмами > напомниает "армянский комсомол" (тм). >
Да проблема не в bash itself, а в том, что есть куча людей (и дистрибутивов), которым он как шёл, так и ехал. В нашем проекте (см. ниже) то и дело всплывают проблемы у людей, которые юзают другие шеллы, или если в их дистрибутивах другие оболочки являются умолчательными. Проблемы появляются то из-за башизмов, где другие оболочки используются, то из-за гнутых расширений в не-гнутых дистрибутивах. И чё с этим делать в ближайшей перспективе (~50 лет :-)) -- неизвестно. POSIX -- да, как вариант, со всеми его замшелостями. Иначе, нагрузка поддержки ложится на маинтейнеров. Но нафига бы оно надо? Для себя, как вариант, я выбрал стратегию уменьшения шелл-скриптов, переписывая их части, где возможно, на языке из пакетов, необходимых для сборки нашей программы. В моём случае Guile Scheme решает многие проблемы лучше *sh, а также разновидностей *awk, которых тоже представлено немало, и решает их одинаковым способом, потому-что одна и та же версия при сборке :-) Млин, выбросить бы ещё autotools куда-нибудь... -- Vladimir (λ)επτόν EDA — https://github.com/lepton-eda