On Wed, 11 Mar 2020 14:38:13 +0300 Dmitry Semyonov <linu...@gmail.com> wrote:
> On Wed, 11 Mar 2020 at 11:59, Victor Wagner wrote: > > > А вообще крайне рекомендую, если вдруг выясняется, что для > > формированмия команды в шелловском скрипте используется более двух > > уровней подстановок, плюнуть и переписать его на perl, python, > > ruby, lua - любом другом скриптовом языке. > > После буквального следования таким советам кому-то потом придётся > ломать голову над сотней-другой строк питоновской лапши вместо десятка > строк понятных шелловских команд. Часто лучше один раз разобраться и Так не надо писать лапшу. На любом языке можно написать плохой код. Да, скорее всего код на более низкоуровневом языке (а perl и python - более низкоуровневые языки, чем shell), окажется более объемным. Но от от этого он не обязательно станет менее читаемым. > > Как пример ложного понимания универсальности "любых других скриптовых > языков" можно привести обработку структурированного текста. То, что на > awk делается максимум парой десятков строк понятного кода, часто > превращают в неудобоваримый алгоритм на 100+ строк универсального > языка. Если это делается парой десятков строк на awk, то примерно в то же количество строк это делается и на perl. Более того, специально для для решения этой задачи автор перла написал a2p. Просто перл надо ВЫУЧИТЬ. В нем есть все, что есть в awk, sed и tr, и многое-многое другое. А то приходят люди с визуалбейсковским бэкграундом и начинают текст обрабатывать на perl с помощью функций substr и index. Плюс к этому есть стандартные библиотечные модули для обработки основных структорированных форматов, авторы которых предусмотрели разные странные случаи, о которых у большинства писателей наколеночных скриптов даже мысли не возникает, пока они лбом об эти грабли не стукнутся. --