История изменений
Исправление theNamelessOne, (текущая версия) :
Ну вот в Haskell может выглядеть так, например:
find "<some_directory>" |> egrep "<some_regexp>" |> xargs "-I{}" "<some_command>" "{}"
Тут вызываются внешние команды, но на практике часто вместо многих из них можно будет обойтись и стандартными средствами языка типа функций поиска по ФС и внутри строк.
Но мне очень нравится твой аргумент, т.е. ты считаешь, что язык shell-скриптов обязан быть убогим во всём остальном ради того, чтобы запись цепочки команд выглядела именно так? Как это оправдывает, к примеру, инопланетный синтаксис условных выражений, отсутствие именованных параметров у функций или другие сомнительные или явно устаревшие особенности?
Ведь если посмотреть на пример того же nushell, который я приводил, то внезапно окажется, что написать нормальный скриптовый язык для shell-а вполне возможно, просто надо сделать усилие и отойти от устаревшего дизайна 50-летней давности. И тут у тебя сразу появляются а) функции/команды с автоматической документацией, встроенным парсингом аргументов/опций, проверкой типов, встроенной поддержкой субкоманд, генерацией shell completions, b) нормальные конструкции языка, с) нормальные составные типы данных и средства работы с ними, d) десятки других плюшек.
И да, pipelines из команд там записывается точно так же, а многие другие конструкции можно выразить ещё более кратко (причём не в ущерб читаемости).
Напиши код на любимом твоем языке
Ок, это все требования, или ещё будут?
Исходная версия theNamelessOne, :
Ну вот в Haskell может выглядеть так, например:
find "<some_directory>" |> egrep "<some_regexp>" |> xargs "-I{}" "<some_command>" "{}"
Тут вызываются внешние команды, но на практике часто вместо многих из них можно будет обойтись и стандартными средствами языка типа функций поиска по ФС и внутри строк.
Но мне очень нравится твой аргумент, т.е. ты считаешь, что язык shell-скриптов обязан быть убогим во всём остальном ради того, чтобы запись цепочки команд выглядела именно так? Как это оправдывает, к примеру, инопланетный синтаксис условных выражений, отсутствие именнованных параметров у функций или другие сомнительные или явно устаревшие особенностей?
Ведь если посмотреть на пример того же nushell, который я приводил, то внезапно окажется, что написать нормальный скриптовый язык для shell-а вполне возможно, просто надо сделать усилие и отойти от устаревшего дизайна 50-летней давности. И тут у тебя сразу появляются а) функции/команды с автоматической документацией, встроенным парсингом аргументов/опций, проверкой типов, встроенной поддержкой субкоманд, генерацией shell completions, b) нормальные конструкции языка, с) нормальные составные типы данных и средства работы с ними, d) десятки других плюшек.
И да, pipelines из команд там записывается точно так же, а многие другие конструкции можно выразить ещё более кратко (причём не в ущерб читаемости).
Напиши код на любимом твоем языке
Ок, это все требования, или ещё будут?