The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Система распараллеливания shell-скриптов PaSh перешла под крыло Linux Foundation

27.09.2021 21:47

Проект PaSh, развивающий инструменты для параллельного выполнения shell-скриптов, объявил о переходе под покровительство организации Linux Foundation, которая предоставит инфраструктуру и сервисы, необходимые для продолжения разработки. Код проекта распространяется под лицензией MIT и включает компоненты на языках Python, Shell, C и OCaml.

PaSh включает JIT-компилятор, runtime и библиотеку аннотаций:

  • Runtime предоставляет набор примитивов для поддержки параллельного выполнения скриптов.
  • Библиотека аннотаций определяет набор свойств, описывающих ситуации в которых допускается распараллеливание отдельных команд POSIX и GNU Coreutils.
  • Компилятор на лету разбирает предложенный Shell-скрипт в абстрактное синтаксическое дерево (AST), разбивает на фрагменты, пригодные для параллельного выполнения, и формирует на их основе новый вариант скрипта, части которого могут выполняться одновременно. Информация о командах, которые допускают распараллеливания, берётся компилятором из библиотеки аннотаций. В процессе генерации параллельно выполняемого варианта скрипта в код подставляются дополнительные конструкции из Runtime.

Например, скрипт, обрабатывающий два файла f1.md и f2.md

        
                        cat f1.md f2.md | 
                          tr A-Z a-z |
                          tr -cs A-Za-z '\n' |
                          sort |
                          uniq | 
                          comm -13 dict.txt - > out
                        cat out | wc -l | sed 's/$/ mispelled words!/'
в обычных условиях обработает два файла последовательно:
а при запуске под управлением PaSh будет разбит на два одновременно выполняемых потока, каждый из которых обрабатывает свой файл:


  1. Главная ссылка к новости (https://linuxfoundation.org/pr...)
  2. OpenNews: Выпуск командной оболочки fish 3.2
  3. OpenNews: Выпуск командной оболочки GNU Rush 2.0
  4. OpenNews: Релиз командной оболочки zsh 5.1
  5. OpenNews: Релиз командного интерпретатора Bash 5.1
  6. OpenNews: Представлен проект Pash, - открытая многоплатформенная реализация MS PowerShell
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/55877-pash
Ключевые слова: pash, shell
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (179) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним (3), 22:17, 27/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Может у них и транслятор ./configure -> CMake есть?
     
     
  • 2.61, Аноним (61), 12:55, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В новости про мягкое, а вы про зелёное.
     

  • 1.5, Аноним (5), 22:25, 27/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    "Програмирую на Баш" - обретает новій смьісл.
     
     
  • 2.7, Аноним (7), 22:56, 27/09/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    > -parallel из PowerShell

    Это вообще не то.

     
     
     
    Часть нити удалена модератором

  • 4.10, Вуся (?), 23:45, 27/09/2021 [ответить]  
  • +4 +/
    Наоборот.
     
     
  • 5.56, Michael Shigorin (ok), 12:26, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Это виндонабросчик с одной извилиной, и та пожароопасная -- не кормите лишку, лучше сразу "к модератору".

    А так-то можно и pdsh со товарищи вспомнить, что я было и подумал при виде заголовка...

    PS: посмотрел на осеннее обострение этого несчастного и вычистил его всего нахрен, не читая сообщения вообще.  Такое вот наказание за полную невменяемость.

     
  • 4.50, Fractal cucumber (??), 12:10, 28/09/2021 [ответить]  
  • +2 +/
    До повершела Башу деградировать вечность, так что никогда не дойдет.
     
  • 3.11, Аноним (11), 01:50, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если речь идёт о ForEach -Parallel из 5 1, то это как раз то самое Итератор обх... большой текст свёрнут, показать
     
     
  • 4.15, Аноним (7), 07:26, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Если речь о ForEach-Object -Parallel из 7.0, то нет это не оно.

    Я именно об этом и говорил, что не оно.

    > Это не для распараллеливания инструкций по-максимуму, это когда нужно выполнить длинный не имеющий промежуточных состояний долгий скрипт прямо из конвейера.

    Как я понимаю, это было запилено, чтобы одновременно опрашивать (или что-то делать) управляемые скриптом PS сервера, а не перебирать их по очереди.

     
  • 4.23, СеменСеменыч777 (?), 08:44, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    да, неплохо наворотил майкрософт. абстракция на абстракции сидит
    и абстракцией погоняет. и все это в нескольких версиях.

    пожалуй, мое решение не изучать и не использовать повершелл было правильным.
    иначе так бы и блуждал во всем этом.

    впрочем, наверняка найдутся люди, которым это понравится.
    не буду их осуждать, не буду считать их лохами и техноздаротами.

     
     
  • 5.36, pofigist (?), 09:58, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –11 +/
    Вообще-то - глубоко ошибочным.
    1. Ни в одной серьезной конторе не используется только линакс-среда. Чистая винда бывает, а чистый линакс - не дорос.
    2. Повершелл есть для линакса. И на нем он выглядит гораздо лучше чем баш на Винде.
    3. Повершелл - сложней башв, но зато - предоставляет несколько более широкие возможности.

    В связи с вышесказанным в любой конторе, доже использующей комбинированную среду выбор средства автоматизации (скрипты) однозначен. И это не баш😁

    Вот такая смешная ситуация - линаксоид без знания повершелла не нужен...

     
     
  • 6.39, СеменСеменыч777 (?), 10:16, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    хорошо я проиграл, а техно-этисамые выиграли рад за них если они хотят тратит... большой текст свёрнут, показать
     
     
  • 7.48, pofigist (?), 12:08, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/

    >> 2. Повершелл есть для линакса. И на нем он выглядит гораздо лучше
    > что значит "выглядит" ?

    Ну имеется ввиду интеграция со всеми остальными системными вещами.

    >> 3. Повершелл - сложней башв, но зато - предоставляет несколько более широкие
    >> возможности.
    > к "баш" (на самом деле /bin/sh) прилагаются grep, sed, awk и perl
    > (но последний ожирел и на крайний случай). возможности последних надеюсь объяснять
    > не надо.

    Да-да-да. Для cmd.exe - они тоже есть, но толку-то? :)

     
  • 6.45, Аноним (45), 11:35, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Это вранье, на самом деле все наоборот, на что мягко намекает линукс в ажуре, по... большой текст свёрнут, показать
     
     
  • 7.47, pofigist (?), 11:59, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Ой, недавно же обсуждали - в линаксе отсутствует аналог MSAD Увы и их - без это... большой текст свёрнут, показать
     
     
  • 8.66, Аноним (61), 13:28, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как там в вашем 1999-м ... текст свёрнут, показать
     
     
  • 9.82, Аноним (82), 16:02, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    что-то все больше в больших конторах ну не берем рога-и-копыта из 10 человек и... текст свёрнут, показать
     
     
  • 10.100, pofigist (?), 19:06, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Давайте не будем сравнивать AD и OpenLDAP Это все равно что сравнивать ну напри... текст свёрнут, показать
     
  • 8.126, freehck (ok), 00:05, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А, вот оно что Ну окей, мы поняли, в какого уровня серьёзных конторах вы работа... текст свёрнут, показать
     
  • 8.137, xgen (?), 02:15, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Эх, молодежь - линакс используется на подавляюще большем количестве устройств ... текст свёрнут, показать
     
     
  • 9.146, pofigist (?), 14:32, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Мой дорогой, но слабообразованный друг - мой первый юникс был на СМ1420 И так... большой текст свёрнут, показать
     
     
  • 10.153, xgen (?), 21:21, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мой высокообразованный, но не далекий друг, наш мир - это капитализм Просто пос... текст свёрнут, показать
     
     
  • 11.177, pofigist (?), 22:59, 03/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Только на нем и делают Внезапно, да Только не 6адо тут про гугль и прочие штуч... текст свёрнут, показать
     
  • 6.49, Michael Shigorin (ok), 12:10, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вы слышали что-нибудь, скажем, про perl?
     
     
  • 7.60, pofigist (?), 12:54, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Легендарный односторонние на перл в повершеле написать не получится - факт. Имхо это не недостаток ни разу 😂
     
  • 6.64, Аноним (61), 13:20, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >2. Повершелл есть для линакса. И на нем он выглядит гораздо лучше чем баш на Винде.

    Лучше Баша выглядит наличием телеметрии?

     
     
  • 7.67, pofigist (?), 13:36, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>2. Повершелл есть для линакса. И на нем он выглядит гораздо лучше чем баш на Винде.
    > Лучше Баша выглядит наличием телеметрии?

    Итак - исходники PowerShell находяться здесь - https://github.com/PowerShell/PowerShell

    У тебя есть возможность указать, где там телеметрия или прослыть 314...м :) Ну и если обнаружишь - может сразу патчик подготовить для ее удаления - благо MIT License это позволяет.

     
  • 6.72, Аноньимъ (ok), 14:31, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >В связи с вышесказанным в любой конторе, доже использующей комбинированную среду выбор средства автоматизации (скрипты) однозначен. И это не баш😁

    В здравом уме ни то ни то никто не станет использовать.

    Уже питон в крайнем случае.

     
     
  • 7.79, pofigist (?), 15:48, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А какую версию пихона по-вашему надо использовать-то?

    Вот есть одна контора - использовала пихон. Второй разумеется. Долго использовала... Сейчас переводят все на PowerShell - это оказалось проще и дешевле чем перейти на 3й пихон. А то выйдет 4й - и понеслось все по новой...

     
     
  • 8.80, Аноньимъ (ok), 15:56, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    По моему лучше никакую А так то вопрос странный, очевидно 3 ... текст свёрнут, показать
     
     
  • 9.83, pofigist (?), 16:07, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Пихон это нечто уникальное по несовместимости между своими же версиями Поскольк... текст свёрнут, показать
     
     
  • 10.127, Аноньимъ (ok), 00:05, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Лисп решение реальное Guix есть от гну, есть ракет схема rash shell есть всяки... текст свёрнут, показать
     
     
  • 11.147, pofigist (?), 14:35, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Lisp давно умер REXX куда более живой ибо сделан професионалами ... текст свёрнут, показать
     
     
  • 12.150, Аноньимъ (ok), 16:31, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Да вы издеваетесь, мейнстрим только только до некоторых фич лиспа стал доходить ... текст свёрнут, показать
     
     
  • 13.152, pofigist (?), 16:58, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ой, вот по мне так лисп - это диагноз Язык конечно был прикольный, новаторский ... текст свёрнут, показать
     
     
  • 14.189, Аноньимъ (ok), 03:49, 06/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    christian schaffmeister https github com drmeister, uses a custom lisp impl to... большой текст свёрнут, показать
     
  • 14.190, Аноньимъ (ok), 03:55, 06/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    https riemann io... текст свёрнут, показать
     
  • 7.99, Аноним (11), 18:44, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    PS используют на венде, а питон на линуксе У обоих проблемы с кроссплатформенно... большой текст свёрнут, показать
     
     
  • 8.124, Аноньимъ (ok), 23:58, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так и должно быть Так и правильно ... текст свёрнут, показать
     
  • 6.123, freehck (ok), 23:57, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Виндоадмины порядочно дешевле и более распространены Вот те квест попробуй нор... большой текст свёрнут, показать
     
     
  • 7.125, Аноньимъ (ok), 00:02, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Потому что у винды есть свои плюсы. Самые важные из них -- это AD, Outlook и MS Office.

    Страшно спросить. Если это по вашему плюсы то что-же там сейчас недостатки?

    >Они являются стандартом де факто, и их хватает для покрытия 99% потребностей корпоративного сегмента.

    Жуть и мрак.

    >Всё это, безусловно, серьёзные компании. Они добывают нефть, они строят вертолёты

    Очень сурьёзно, настолько что бекдоры ANB их не волнуют.

     
     
  • 8.128, freehck (ok), 00:17, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нашёл, где спросить На опеннете Тут каждый первый тебе ведро недостатков отгру... текст свёрнут, показать
     
     
  • 9.131, Аноньимъ (ok), 00:33, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Он сложен не в плане супер хакеров, а в плане комплексных мер И дело тут не в ш... текст свёрнут, показать
     
     
  • 10.145, pofigist (?), 10:13, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Очевидно что ты очень слабо представляешь процессы добычи нефти или создания и п... текст свёрнут, показать
     
  • 8.144, pofigist (?), 10:01, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Самый большой недостаток винды это wsl, особенно 2й версии 129315 Товарищ ещ... текст свёрнут, показать
     

     ....большая нить свёрнута, показать (42)

  • 1.9, Аноним (9), 23:18, 27/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Код проекта распространяется под лицензией MIT и включает компоненты на языках Python,

    Годная новость! И лицензия правильная и место питона верное. Порулить скажем портажами - это для питона ок. Пилить синапс - беда. Остался еще в отдельных людях здравый смысл. Отлично!

     
     
  • 2.42, Аноним (42), 10:31, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если портеж станет вместо тупления по 15 минут делать компиляцию всех программ одновременно, что не завязаны на последовательность при этом, то будет годно. Гентоводы обрадуются. А то все ведь имеют хотя бы 3950x, 5950x или тредриппер на 64 ядра, так что годно.
     

  • 1.12, Аноним (12), 02:28, 28/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    а я gnu parallel пользовался
    чем это лучше?
     
     
  • 2.38, dikiy_f90 (?), 10:08, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    тем что как использователь parallel::думал ты
     
  • 2.51, Michael Shigorin (ok), 12:14, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Там ручками говоришь, тут JIT.  Кроме parallel(1) тоже есть несколько подобных реализаций именно той задачи -- например, Лёша Чеусов (vle) сделал paexec.
     
  • 2.129, freehck (ok), 00:24, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > а я gnu parallel пользовался
    > чем это лучше?

    О, пользователь parallel. Очень рад встретиться. У меня с момента первого анонса parallel возник вопрос, на который я хотел бы получить ответ: что может parallel, чего не мог старый добрый xargs?

    Я не в целях подъе***ть, мне правда интересно.

     
     
  • 3.154, Stax (ok), 02:35, 30/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Он может жуткий синтаксис, в котором без пол-литры разобраться сложно. Каждый раз, когда вижу хитрую команду parallel, хочется развидеть это навсегда, даже не пытаясь понять, что там написано...

    А по сути:
    1) parallel имеет кучу способов передачи имен файлов для обработки, от передачи через список в командной строке до sql базы. xargs же, чтобы не ломаться на пробельных символах, может разве что читать с stdin с генератора, умеющего завершающие нули типа find -print0, а их мало и это не очень удобно
    2) parallel не смешивает вывод параллельно выполняемых задач, xarg все превращает в кашу, а parallel буфферизирует по отдельности и выводит каждый полностью

     
     
  • 4.155, freehck (ok), 14:54, 30/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну оно так часто бывает, когда смотришь на инструменты следующего поколения Это... большой текст свёрнут, показать
     

  • 1.13, Аноньимъ (ok), 04:40, 28/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Жуть и мрак.

    Шелл скрипт был ошибкой, вот что неплохо бы заменить как устаревшую жуть.

     
     
  • 2.14, lockywolf (ok), 06:22, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Так не пользуйся, заставляет, что ли, кто-то?

    Альтернативных шеллов миллион, как sh-родственных, типа zsh, так и кучи других, типа rc, tcl (его можно использовать как шелл), и ещё кучи разных.

     
     
  • 3.52, Michael Shigorin (ok), 12:16, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Он озвучивает ту точку зрения, что шелл как язык программирования -- это ужас.  Ну да, ужас, но не ужас-ужас-ужас.

    Особенно если понимать его роль связующего между собственно молотящими программами на сях или же наоборот -- "думалками" на более высокоуровневых языках с более богатыми структурами данных.

    И особенно если понимать, что шелловый конвейер -- это функциональное программирование в чистом виде. :)

     
     
  • 4.76, Аноньимъ (ok), 15:35, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Пока это простой конвейр, то просто ужас.

    Когда нужно немножко преобразовать или запарсить текст, то ужас-ужас.

    Когда нужно входные аргументы обработать, в файловую систему посмотреть, распарсить текст, выполнить не совсем тривиальную логику и стянуть что-то с инета то ужас-ужас-ужас.

    Но многие в использовании баша идут ещё дальше.

    Вот это богохульное распараллеливание запилили. К каким ошибкам и дырам в безопасности оно приведёт... Зачем натягивать антилопу на глобус?

    И главное оно ни разу не кроссплатформенно потому что окружения разные, не везде баш то есть, не везде есть нужные утилиты и не везде они работают одинаково.

     
     
  • 5.130, freehck (ok), 00:33, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Когда нужно немножко преобразовать или запарсить текст, то ужас-ужас.

    А в чём проблема с cut/sed/awk?

    > Когда нужно входные аргументы обработать, в файловую систему посмотреть, распарсить текст,
    > выполнить не совсем тривиальную логику и стянуть что-то с инета то
    > ужас-ужас-ужас.

    У меня пачка скриптов, которые именно это всё и делают. Например, бэкапы делают. Или создают локи, чтобы избежать одновременного конфликтующих команд. Триггерят пайплайны гитлаба или просто вытягивают артефакты через ту же апишечку. Не понимаю, почему это вселяет в вас такой ужас. Оно просто работает, и уже не первый год.

     
     
  • 6.133, Аноньимъ (ok), 00:48, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, ужас в меня это не вселяет. Во мне есть ужас но это другой ужас.
    Ужас же шелл скриптов существует вне меня в материальной и не материальной реальности.

    Ужас потому что не переносимо не поддерживаемо не читаемо не отлаживаемо.

     
     
  • 7.138, freehck (ok), 03:53, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Ужас потому что не переносимо не поддерживаемо не читаемо не отлаживаемо.

    Не умеешь -- не используй. =)

     
  • 7.173, VINRARUS (ok), 21:29, 03/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Ужас потому что не переносимо не поддерживаемо не читаемо не отлаживаемо.

    Да ты просто понятия не имееш как на шеле програмировать, потому шо больше однострочников (которые вообще к шелу лиш косвенно отношение имеют) ничего не использовал очевидно.

    Я вот умею многое делать исключительно силами /bin/sh, оно отказоустойчиво и быстро, например:
    https://forum.motofan.ru/index.php?s=&showtopic=163337&view=findpost&p=1790116

     
     
  • 8.176, Аноньимъ (ok), 22:55, 03/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Не умею так не умею Как кстати дела с отладкой обстоят у вас Чем пользуетесь ... текст свёрнут, показать
     
     
  • 9.178, VINRARUS (ok), 23:23, 03/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так мало кто умеет, большынство понятия не имеют о всех возможностях shell http... текст свёрнут, показать
     
     
  • 10.186, Аноньимъ (ok), 21:39, 04/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно А как обработка ошибок осуществляется, и чем тестируете ... текст свёрнут, показать
     
     
  • 11.188, VINRARUS (ok), 07:24, 05/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Глазами, в терминале Иногда лог в файл направляю ... текст свёрнут, показать
     
  • 11.192, freehck (ok), 16:19, 11/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я тут мимо старой темы проходил echo конечно хорошо, но для более грамотного де... текст свёрнут, показать
     
  • 3.73, Аноньимъ (ok), 14:35, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Так не пользуйся, заставляет, что ли, кто-то?

    Даааа. Заставляет. Тут пол GNU Linux на этом щастье нынче написилькана. Всякие системы сборки и прочие вещи от ольтернативно оларённых линуксов.

    >Альтернативных шеллов миллион, как sh-родственных, типа zsh, так и кучи других, типа rc, tcl (его можно использовать как шелл), и ещё кучи разных.

    Уникс шелл с его утилитами бредавая штука сама по себе.

    Да, альтернативы есть.

     
     
  • 4.174, VINRARUS (ok), 21:32, 03/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Уникс шелл с его утилитами бредавая штука сама по себе.

    Какое вообще отношение утилиты имеют к шелу????
    Полно натива где в коде используются теже утилиты с /bin/...

     
  • 3.93, n00by (ok), 17:15, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Так не пользуйся, заставляет, что ли, кто-то?

    Дело-то не в этом.

    Когда sh появился, его пользователи знали минимум пару-тройку других ЯП. Потому эти люди писали скрипты, когда это уместно. Потом пришли админы, использовали когда уместно -- для автоматизации.

    Далее пришла популярность, и появились те кто на bash пишет программы в 20 KLOC и больше ничего не знает и знать не хочет.

    Недавний пример:



    $ cat xdg-user-dirs.sh
    #!/bin/sh
    # коммент вырезан
    if [ -x /usr/bin/xdg-user-dirs-update ]; then
        /usr/bin/xdg-user-dirs-update
    fi[guru@localhost ~]$



    Утверждается, что исходный текст содержит ошибку -- отсутствие завершающего символа 0x0A. Потому bash обязан очень громко на него ругаться, а не исполнять.

     
     
  • 4.140, lockywolf (ok), 07:24, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >[оверквотинг удален]
    >


    > $ cat xdg-user-dirs.sh
    > #!/bin/sh
    > # коммент вырезан
    > if [ -x /usr/bin/xdg-user-dirs-update ]; then
    >     /usr/bin/xdg-user-dirs-update
    > fi[guru@localhost ~]$
    >


    > Утверждается, что исходный текст содержит ошибку -- отсутствие завершающего символа 0x0A.
    > Потому bash обязан очень громко на него ругаться, а не исполнять.

    А, типа, это люди, когда пишут на Си или Питоне, пишут код лучше, что ли?

    Я вот, например, читал код OpenBSD (система без bash по-умолчанию, между прочим), и там глобальная переменная на глобальной переменной.

    Твоя проблема не в баше.

     
     
  • 5.142, n00by (ok), 07:53, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    gt оверквотинг удален Вообще-то я сравнивал баш-программистов со знающими неск... большой текст свёрнут, показать
     
  • 2.16, Аноним (7), 07:29, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Из коробки в линуксе сразу есть Perl и Python. Даже ставить не надо специально.

    Кто мешает писать скриптоту на них?

     
     
  • 3.18, Аноним777 (?), 08:12, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Отвечу примером из жизни:

    Я: Привет! Что делаешь?
    Коллега: Пишу скрипт для ...
    Я: Прикольно, а на чём?
    Коллега: Python3.7
    Я: А ты в курсе что твой скрипт должен работать в том числе на Debian7 и Centos6?
    Коллега: @ля

    shell скрипты обладают хорошей кросс платформенностью в linux-unix среде, имеют открытый код, не требуют сторонних библиотек или модулей языка.

     
     
  • 4.19, Онаним (?), 08:28, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    В этом плане удобнее всего PHP, у него весь рантайм укладывается в один бинарник, который можно ещё и статически собрать, никаких россыпей зависимостей, на нём самом написанном, в отличие от перлопитонов, он не тащит. Да, сам рантайм получается слегка тяжеловесом, но зато прекрасно работает на любой совместимой платформе.
     
     
  • 5.53, Michael Shigorin (ok), 12:18, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это если разведение гадюшников (или даже автоматизация этого процесса) является нормой сопровождения "систем".  Так-то много чего возможно statifier'ом каким утрамбовать в один исполняемый файл.
     
     
  • 6.113, Онаним (?), 20:50, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разведение гадюшников - это к пыхтону с его venv.
    И отдельно к перлу с его бардаком.
     
  • 6.114, Онаним (?), 20:51, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В смысле утрамбовать? PHP - реально представляет из себя один-единственный бинарь при статической сборке. И даже при динамической сборке, но в этом случае он совместимые внешние либы потребует. В худшем случае - ещё конфиг можно рядом положить.
     
  • 5.75, Аноним (75), 15:32, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    С Go не перепутали?
     
     
  • 6.112, Онаним (?), 20:49, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, не перепутал. У того рантайм надо тащить в каждом собранном бинарнике каждой тулзы, а у PHP при желании выходит один на все скрипты. При этом скрипты можно независимо апдейтить без пересборки, что местами важно.
     
  • 4.20, Онаним (?), 08:30, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Суёшься в перл - начинается бесконечный поиск пакетов с пакетами, если в дистре не оказалось - велкам ту CPAN, и тут начинается конфликт с тем, что в дистре. Суёшься в пыхтон - то же самое, только скорее всего вообще придётся виртуальное окружение подавать, потому что с системным вообще не разъехаться. Короче, вы поняли.
     
     
  • 5.22, kusb (?), 08:36, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    tcl?
     
     
  • 6.24, Онаним (?), 08:59, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Why not?
    Для тех, кто уживается с его синтаксисом - вполне.
     
  • 6.29, DAyjybv (?), 09:23, 28/09/2021 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 5.31, DAyjybv (?), 09:34, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    CORE::* в perl достаточно для рядовой автоматизации. А продуманная и стандартная библиотека позволяет решать остальные задачи. Может понадобиться работа с датами, бд, асинхронщина и прочее lwp с tt. Но они стабильны по интерфейсам и, часто, уже есть.
     
     
  • 6.115, Онаним (?), 20:52, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Угу. Как только доходим до HTTP, что в перле, что в пыхтоне начинается лютейший ад и всё прочее.
    В PHP же опять же всё в рантайме. А скрипты отдельно, что и требуется.
     
     
  • 7.136, Аноним (-), 01:38, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Как только доходим до HTTP

    дальше можно не продолжать, у хттп проблемы встроены.

     
  • 5.33, Аноним (7), 09:46, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Суёшься в перл - начинается бесконечный поиск пакетов с пакетами

    На уровне глубины shell-а базовой поставки вполне достаточно.

     
     
  • 6.116, Онаним (?), 20:53, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, кому как.
     
  • 5.78, Аноньимъ (ok), 15:42, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Лисп схему встроить прямо в ядро.
     
     
  • 6.141, lockywolf (ok), 07:27, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Лисп схему встроить прямо в ядро.

    Схема более похожа на Алгол, чем на Лисп. (Ну ,(кроме скобочек) 'конечно)

     
  • 4.21, Онаним (?), 08:34, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Недавно перетаскивал LinOTP на восьмую ветку CentOS'а.
    Пришлось допилить: сам LinOTP (свежий при том), его перловый скрипт к радиусу, пару питоновых либов - потому, что перловые модули и либы, с которыми эта дрянь совместима, уже либо deprecated, либо всё, один перловый модуль всё уже года три, одна питоновая либа не собирается без патча, одна требует замены. Печаль-беда.
     
     
  • 5.25, Онаним (?), 09:01, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    (я уж молчу о том, что он требует мёртвенького python2)
     
     
  • 6.54, Michael Shigorin (ok), 12:20, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Попробуйте хотя бы разделить наработки с апстримом -- вдруг при виде Ваших страданий и они сподвигнутся что-то сделать.
     
     
  • 7.117, Онаним (?), 20:54, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    С апстримом мёртвых deprecated библиотек, которые он хочет?
    :D
     
  • 5.26, СеменСеменыч777 (?), 09:03, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    были ли расмотрены (и отброшены) варианты:
    1) выкинуть LinOTP, заменить на более пригодный аналог;
    2) выкинуть CentOS, заменить на более пригодный аналог;
    3) остаться на CentOS 7, поддерживать своими силами или подрядчиками по найму.
    ?
     
     
  • 6.118, Онаним (?), 20:56, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > были ли расмотрены (и отброшены) варианты:
    > 1) выкинуть LinOTP, заменить на более пригодный аналог;

    Учитывая, что с ним работать не мне - рассмотрено и отброшено. На него завязаны какие-то проприетарные железки помимо того.

    > 2) выкинуть CentOS, заменить на более пригодный аналог;

    Не рассмотрено и не отброшено, в сети более-менее гетерогенная среда.

    > 3) остаться на CentOS 7, поддерживать своими силами или подрядчиками по найму.

    То же самое, что в п.2, перевод старого бардака из другой компании на общую гетерогенную среду.

     
     
  • 7.119, Онаним (?), 20:57, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Простите, гетерогенная = гомогенная.
     
     
  • 8.162, СеменСеменыч777 (?), 15:07, 01/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    имено что гомо такая среда даже внутри Microsoft не живет хотя у них все сво... текст свёрнут, показать
     
     
  • 9.165, Онаним (?), 20:31, 01/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Идеал, я так понимаю, зоопарк из полутора локалхостов, на одном убунта, на друго... текст свёрнут, показать
     
     
  • 10.166, СеменСеменыч777 (?), 22:34, 01/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    если какие-то задачи кроме сдохнуть первым и предупредить что так делать не над... большой текст свёрнут, показать
     
     
  • 11.169, Онаним (?), 09:00, 02/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно не вписал Винда - это задача уже другой команды, там свои заморочки BS... текст свёрнут, показать
     
     
  • 12.179, СеменСеменыч777 (?), 07:55, 04/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ну вот видите а контора-то одна, и сеть общая и где ваша желанная гомосреда ... текст свёрнут, показать
     
     
  • 13.180, Онаним (?), 08:10, 04/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если чуть-чуть включить мозг и понять, что среды две а то и более - есть ... текст свёрнут, показать
     
  • 13.181, Онаним (?), 08:11, 04/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Есть, конечно, но не в моём случае Если собираешься взакрытую допиливать ядр... текст свёрнут, показать
     
     
  • 14.182, СеменСеменыч777 (?), 12:12, 04/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    не только например если надо поставить хост, который сломают в последнюю очеред... текст свёрнут, показать
     
     
  • 15.183, Онаним (?), 20:53, 04/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Security through obscurity Учитывая, что качество review явно разнится, даже та... текст свёрнут, показать
     
     
  • 16.185, СеменСеменыч777 (?), 21:18, 04/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    bullshit through bullshit вернитесь в реальность что чаще всего ломают потоков... текст свёрнут, показать
     
     
  • 17.187, Онаним (?), 22:30, 04/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Очень правильное определение для ниши, указанной выше ... текст свёрнут, показать
     
  • 15.184, Онаним (?), 20:54, 04/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А то может получиться в первую, а не в последнюю ... текст свёрнут, показать
     
  • 5.34, Аноним (7), 09:47, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А если бы всё это было написано на shell?
     
     
  • 6.41, СеменСеменыч777 (?), 10:23, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А если бы всё это было написано на shell?

    ит-салаги исполняли бы это в bash, удивлялись тормозам и приняли бы решение - все переписать на ... [впишите сами].

     
     
  • 7.69, Аноним (7), 13:43, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я, собственно, хотел намекнуть, что пример не релевантен.

    Всякую скриптоту вокруг автоматизации рутинных задач прекрасно выполняют perl и python, тем более, что есть из коробки. Я предпочитаю perl, потому что ещё нужен aix, в котором питон надо ставить отдельно.

    Повершелл прекрасен именно под виндой, для работы с объектами АД, дотнет, самой винды и вот это вот всё.

    Если нужно по простому прочекать какой-то файл, переложить его оттудова сюда, ну и капнуть в лог, я возьму perl (python). Оно будет работать везде, от винды до любого юникса, практически без изменений.

     
  • 4.27, commiethebeastie (ok), 09:14, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Я: А ты в курсе что твой скрипт должен работать в том числе на Debian7 и Centos6?

    А он в курсе, что printf в утилитах не обязан быть стабильным?

     
  • 4.28, DAyjybv (?), 09:22, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Кросплатформенностью? шелл-то и кросплатформенностью?!
    Херня вызывающая другую херню и полагается, что на целевой системе будет хотя бы корютилс без чудес.
     
     
  • 5.35, Аноним (7), 09:48, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > шелл-то и кросплатформенностью?!

    Херня вызывающая другую херню и полагается, что на целевой системе будет хотя бы корютилс без чудес.

    Вот вот.

     
  • 4.32, Аноним (7), 09:42, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Кто мешает писать на питон 3.5?
     
     
  • 5.71, Аноним (61), 13:45, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Питоны разных версий уживаются в одной системе. Что мешает поставить рядом Python посвежее, если скриптователю захотелось наипоследних фич?
     
  • 4.63, pofigist (?), 13:00, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > shell скрипты обладают хорошей кросс платформенностью в linux-unix среде

    Только если писать на чистом баше, как только вызвал внешнюю утилиту - не факт что она будет установлена на другом экземпляре той же версии дистрибутива

     
     
  • 5.101, Led (ok), 19:20, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да что ты такое, чёрт-побери несёшь? Тебя страшно "обидел" кто-то? или ковид мозг совсем не пощадил?
     
  • 5.132, freehck (ok), 00:45, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> shell скрипты обладают хорошей кросс платформенностью в linux-unix среде
    > Только если писать на чистом баше, как только вызвал внешнюю утилиту -
    > не факт что она будет установлена на другом экземпляре той же
    > версии дистрибутива

    Ну так это не проблема скрипта. Скрипт -- это софт. Софт пакуется в пакеты, а у пакета есть зависимости, которые уже резолвиться должны пакетником.
    Пакет сложно? Ну окей, есть масса альтернатив. Можно например просто писать роли на ansible, которые при установке скрипта будут устанавливать и его зависимости. Как бы, возможностей масса, используйте. Это и есть хорошая кроссплатформенность.

     
  • 4.68, Аноним (61), 13:39, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >shell скрипты ... имеют открытый код

    А скрипты на Python имеют закрытый код?

     
  • 4.77, Аноньимъ (ok), 15:38, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >shell скрипты обладают хорошей кросс платформенностью в linux-unix среде, имеют открытый код, не требуют сторонних библиотек или модулей языка.

    Ха! Да щаз!
    Это когда баш перестал быть сторонней библиотекой?

    Оно ни разу не кроссплатформенно, потому что окружения разные, не везде баш то есть, не везде есть нужные утилиты и не везде они работают одинаково.

    У шелл скриптов нет механизма абстрагирования от конкретного окружения.

     
     
  • 5.175, VINRARUS (ok), 21:38, 03/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >У шелл скриптов нет механизма абстрагирования от конкретного окружения.

    Есть, busybox лиш подтянуть нада.

     
  • 3.40, cz (??), 10:18, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну это же было сделано двести лет до нашей эры. Не модно и не молодёжно.
     
  • 2.81, пончик (?), 16:02, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ощибка это SystemD, JavaScript, Electron, dart или как его там от гугла вместе с go.

    А shell отличная вещь для своих целей. Прост, логичен, понятен и с отличной переносимостью.

    Не надо от него требовать то, на что он не был расчитан и будет счастье.

     
     
  • 3.122, Аноньимъ (ok), 23:51, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ощибка это SystemD, JavaScript, Electron, dart или как его там от гугла

    Согласен.
    Но вынужден дополнить. СистемаД решает таки реальные проблемы которые горе шелл погромисты так и не удосужились решить за всё время сещуствования GNU/Linux.

    > вместе с go.

    Не согласен принципиально. Го отличный инструмент для решения конкретных задач.

    > А shell отличная вещь для своих целей.

    Он решает проблемы которых как класса не должно существовать.
    И круг этих задачт очень узок. Точно не инит системы и не система контроля версий.

    > Прост, логичен, понятен

    Примерно как брейнфак.

    >и с отличной переносимостью.

    Ох нет. В других комментариях уже объяснил почему нет.

    > Не надо от него требовать то, на что он не был расчитан
    > и будет счастье.

    Не надо.

     
     
  • 4.134, freehck (ok), 00:48, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> А shell отличная вещь для своих целей.
    > Он решает проблемы которых как класса не должно существовать.

    Лол. Не угодно ли местному балаболу обозначить задачи, для решения которых существует shell? Вот те самые, которых не должно существовать. =)

     
     
  • 5.135, Аноньимъ (ok), 01:01, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно стало что он обозначит.
     
     
  • 6.139, freehck (ok), 03:55, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Интересно стало что он обозначит.

    Ах не угодно. Ну-ну. )

     
     
  • 7.148, Аноньимъ (ok), 15:00, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> Интересно стало что он обозначит.
    > Ах не угодно. Ну-ну. )

    Тебе не угодно? Что ты сказать вообще хочешь? Объясни себя.

     
     
  • 8.156, freehck (ok), 15:14, 30/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я хочу сказать, что с балаболством вроде следующего становится вполне очев... большой текст свёрнут, показать
     
     
  • 9.157, Аноньимъ (ok), 18:09, 30/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, ты грязно меня оскорбляешь Или в твоей семье нормально таким образом обращ... большой текст свёрнут, показать
     
  • 9.158, Аноньимъ (ok), 23:03, 30/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Почти не спал последние дни, а тут вы явились, нужно быть все-же добрее Помогу ... большой текст свёрнут, показать
     
     
  • 10.159, freehck (ok), 01:34, 01/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Надо же На меня похож Окей, я по жизни на редкость злая сволочь по мнению нек... большой текст свёрнут, показать
     
     
  • 11.163, Аноньимъ (ok), 18:33, 01/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Вы путаете свой внутренний мир с внешней реальностью То что вы обиделись, еще н... большой текст свёрнут, показать
     
     
  • 12.167, freehck (ok), 00:12, 02/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    имитация пользователя Ммм, здорово Значит первой в sexp-е стоит функция Всё ... большой текст свёрнут, показать
     
     
  • 13.170, Аноньимъ (ok), 12:17, 02/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Обезьянам нужно в джунглях сидеть О чём вы вообще Люди в большинстве не такие ... текст свёрнут, показать
     
  • 11.164, Аноньимъ (ok), 18:44, 01/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если процессы ненужно исполнять параллельно то шелл ненужен Например одна прогр... текст свёрнут, показать
     
     
  • 12.168, freehck (ok), 00:25, 02/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Уууу, какая софистика пошла в ход То есть тебе вот прямо-таки хочется именно чт... большой текст свёрнут, показать
     

     ....большая нить свёрнута, показать (85)

  • 1.17, Админ Анонимов (?), 08:06, 28/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >и включает компоненты на языках Python, Shell, C и OCaml.

    а почему не просто тока православный С ? зачем такой огород городить ?

     
     
  • 2.43, Аноним (42), 10:34, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    В Gentoo тоже похоронили Paludis на Си и пользуются Portage на питоне. Кто их знает, может им проще было. Лет через много когда будет требование к многопоточности обязательным может и выкинут все кроме Си и шелла.
     
     
  • 3.44, Аноним (9), 11:25, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Такими темпами лет через много дженту просто перестанет существовать. Если тренд набирающий обороты таки победит, в дженту просто не будет никакого смысла.
    А там еще и смуззяшные питоняши дотянуться ручками до портажных питонов и заверте..
     
  • 3.89, Аноним (89), 16:37, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В Gentoo тоже похоронили Paludis на Си

    Никто никого не хоронил. Активная фаза разработки Paludis завершилась, а в portage стали резво внедрять новые EAPI... Внедряли по делу (кросскомпиляция в EAPI 7/8 наконец-то стала работать адекватно).

    А paludis сам собой отстал и поломался. Пострадал не только paludis, но и всякие мелкие утилитки из app-portage. Одни ROOT=/usr/aarch-linux-gnu/ игнорят, другие REQUIRED_USE не умеют, третьи CHOST от CBUILD не отличают и т.д.

     
  • 2.57, Michael Shigorin (ok), 12:27, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что переизобретать bash для разбора в AST, видимо, не хотелось.  Интересно, пробовали ли взять его парсер или сразу было понятно, что для таких преобразований именно что более высокоуровневые структуры данных нужны?..

    PS: imz@ как-то написал cuglify -- транслятор диалектов языка C; ему для этого пригодился Haskell:
    http://hub.darcs.net/imz/cuglify (начинать осмотр стоит с ann*.md)
    http://lvee.org/ru/abstracts/185
    http://lists.altlinux.org/pipermail/devel/2016-February/200850.html

     

  • 1.30, Ordu (ok), 09:25, 28/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Ох нихрена ж они заморочились.
     
  • 1.46, Аноним (-), 11:44, 28/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Проект PaSh, развивающий инструменты для параллельного выполнения shell-скриптов, ... Linux Foundation, ... Код проекта распространяется под лицензией MIT и включает компоненты на, ... Shell, ...

    Яснапонятно. Какой, именно Шелл, неужели Маздаевский PowerShell?

    Они ничего не слышали о GNU Parallel.

     
     
  • 2.58, Michael Shigorin (ok), 12:28, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Полагаю, это Вы не дочитали до букв JIT.

    // давний пользователь parallel, пакет с которым в альте и поддерживаю

     

  • 1.59, Аноним (61), 12:52, 28/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    PaSh - удар по systemd'ерам.
     
  • 1.65, OpenEcho (?), 13:26, 28/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > включает компоненты на языках Python, Shell, C и OCaml.

    И этот комбайн только из-за того, что поленились почитать мэнуал и узнать о чудо фичи - "&"
    которая запустит в субпроцессе паралельно любую из задач непосредственно из скрипта...


    Это просто арктический лис какой-то, пригнать кран, бульдозер и ракету чтоб помочь велосипеду переехать дорогу

     
     
  • 2.70, Аноним (70), 13:44, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Справедливости ради, я так и не осилил исполнение нескольких фоновых задач по числу ядер на шелле (не считая утилиты вроде xargs и parallel). Зато осилил IPC на шелле (вообще без проблем) и фоновые процессы на шелле (изично, только как завершать их нормально, чтоб слип не провисал, тоже не представляю -- приходится убивать). Эти ребята решили проблему несколько иначе, и шел им просто лишний как по мне. Да и вообще, есть подозрение, что это чисто по фану.
     
     
  • 3.74, OpenEcho (?), 15:31, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    how_many_cpu lscpu 124 grep On-line CPU 124 awk -F print 2 ... большой текст свёрнут, показать
     
     
  • 4.84, San (??), 16:10, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >lscpu | grep 'On-line CPU' | awk -F: '{print $2}'

    Зачем так сложно? nproc
    Можно даже (отсторожно башизм) $(($(nproc)*4)) если хочется по 4 процесса на ядро запустить

     
  • 4.85, Аноним (70), 16:13, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ах, если бы всё так просто было… Я конечно в порядке развлечения сделал всё на шелле, но вывод я поучил только один: нужны скрипты -- бери питон и не страдай хернёй, особенно, если требуется параллельное исполнение.
     
     
  • 5.87, San (??), 16:20, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Кусок давно и успешно работающего кода параллельно запускающего сканирование в 300+ потоков на 6 ядрах процессора:
    for th_count in $(seq 1 $threads_run)
    do
      domain_scan "$th_count" &
    done
    joblist="$(jobs -p|sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g')"


    Не хочу обидеть никакие языки программирования, но чем дольше работаю с шелом, тем реже возникает желание/надобность что-то к шелу добавлять (даже однострочники на разных ЯП)

    Вышеуказанный код позже был переписан с использованием Gnu Parallel (что улучшило работу скрипта), но внедрение нового скрипта  пока затянулось по бюрократическим причинам

     
     
  • 6.88, Аноним (70), 16:35, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Так это совершенно мимо: ведь задача не наспавнить процессов, а спавнить новые покуда есть данные. При завершении родительского процесса (а ля sigint/sigterm) все порождённые процессы должны быть тут же завершены (включая все эти слипы), а готовые уже результаты сохранены.
     
     
  • 7.90, San (??), 16:42, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Совсем не мимо. Скрипт именно так и работает: читает из файла 100500мильенов строк входных данных, разбивает входные данные на N частей, параллельно обрабатывает все эти N частей. Обработка результатов запущенной в N потоков ведется другим участком кода, который я не приводил выше, чтоб не захламлять обсуждение кодом
     
     
  • 8.91, Аноним (70), 16:56, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я просто не заметил того кода, с которым у меня возникли проблемы в шелле, а име... текст свёрнут, показать
     
     
  • 9.92, San (??), 17:03, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    У приведенного мной выше кода есть еще такой минус Если одни потоки завершаются... текст свёрнут, показать
     
     
  • 10.94, Аноним (70), 17:17, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А как же провисшие процессы И gnu parallel это perl Мне не нравится автор и ос... текст свёрнут, показать
     
     
  • 11.95, San (??), 17:27, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Что значит провисшие А, точно я упустил еще одну строчку, которую надо было при... текст свёрнут, показать
     
     
  • 12.96, Аноним (70), 17:33, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Допустим, там фоновый жоб в таком формате while sleep 600 wait do и если скри... текст свёрнут, показать
     
     
  • 13.97, San (??), 17:38, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Согласен, подобное может быть проблемой, но не мой случай Все запущенные в пото... текст свёрнут, показать
     
     
  • 14.106, Michael Shigorin (ok), 19:31, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    help ulimit, однако ... текст свёрнут, показать
     
  • 11.103, Аноним (-), 19:25, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    https www freebsd org cgi man cgi find 1 code -X Permit find to be sa... текст свёрнут, показать
     
     
  • 12.107, Аноним (70), 19:49, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну норм, это правда findutils Чё там по coreutils ... текст свёрнут, показать
     
     
  • 13.110, Аноним (-), 20:35, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ну норм спрыг Погоди, щас шнурки поглажу ... текст свёрнут, показать
     
     
  • 14.111, Аноним (70), 20:46, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Отчасти, ты прав конечно, только ведь это одна и та же проблема Есть ещё прекра... текст свёрнут, показать
     
     
  • 15.120, Аноним (-), 21:04, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я нхнп Особенно - причем тут GPL А бсдшный sh который именно sh, с реализаци... текст свёрнут, показать
     
     
  • 16.121, Аноним (70), 21:12, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    нет, я имел в виду for file do - find -c for file do echo file done sh ... текст свёрнут, показать
     
  • 7.161, freehck (ok), 02:28, 01/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > ведь задача не наспавнить процессов, а спавнить новые покуда есть данные

    Именно это xargs -P и делает.

     
  • 6.104, Michael Shigorin (ok), 19:29, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Не хочу обидеть никакие языки программирования, но чем дольше работаю
    > с шелом, тем реже возникает желание/надобность что-то к шелу добавлять
    > (даже однострочники на разных ЯП)

    А книжку "UNIX: универсальная среда программирования" (Керниган, Пайк) помните?


     
  • 5.102, Led (ok), 19:24, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >бери питон и не страдай хернёй

    Забыл как Мариванна говорила: "На ноль делить нельзя!"

     
  • 4.98, n00by (ok), 17:56, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> Справедливости ради, я так и не осилил исполнение нескольких фоновых задач по
    >> числу ядер на шелле (не считая утилиты вроде xargs и parallel).
    > how_many_cpu() {
    >    lscpu | grep 'On-line CPU' | awk -F: '{print
    > $2}'
    > }

    Вот функция, которая составляет список активных ядер. Пример форматирования в комментарии.

    /*
    * Returns human readable representation of the cpuset. The output format is
    * a list of CPUs with ranges (for example, "0,1,3-9").
    */
    char *cpulist_create(char *str, size_t len,
    cpu_set_t *set, size_t setsize)

     
  • 4.105, Michael Shigorin (ok), 19:30, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > а в итоге строют мостра, вместо того чтоб разобраться с инструментом,
    > который они собираются "улучшать"

    На эту тему: http://egorfine.com/ru/articles/worse-than-failure/

     
  • 4.108, RM (ok), 19:56, 28/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > tail --pid=$pid -f /dev/null;

    Это можно даже сказать красивый изврат с tail
    Но: как оно себя будет вести если пока
    "Do some other stuff in parent's process ...";
    фоновый процесс с данным pid завершится и на его место кто-то запустит что-то другое? (гонка)
    Не зря же pidfd придумали.

     
     
  • 5.149, OpenEcho (?), 16:30, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> tail --pid=$pid -f /dev/null;
    > Это можно даже сказать красивый изврат с tail

    - Почему красивый изврат?
    - Красота спасет мир ;)


    > Но: как оно себя будет вести если пока
    > "Do some other stuff in parent's process ...";
    > фоновый процесс с данным pid завершится и на его место кто-то запустит
    > что-то другое? (гонка)

    Ну свой то PID мы знаем ?!
    А детишек, свои или нет можно легко проверить на отцовство 'ps -o ppid=ххх'
    Есть еще куча других методов, но каждый хорош под свою задачу, если здесь добавить обертку на проверки, то смысл примера потеряется

    Пример то - не продакш, а просто в тему, что народ нагородил огород из кучи разных языков, хотя могли бы обойтись не квадратной головой и использовать тулз то назначению.

    > Не зря же pidfd придумали.

    Ну свой то PID мы знаем ?!
    А детишек, свои или нет можно легко проверить на отцовство 'ps -o ppid=ххх'
    Можно пошерстить /proc/$PID/fd и проверить уникальный доступ к чему-либо уникальному (хэш созданный на старте к примеру) ...
    Есть еще куча других методов, но каждый хорош под свою задачу, если здесь добавить обертку на проверки, то смысл примера потеряется

    Пример то - не продакш, а просто в тему, что народ нагородил огород из кучи разных языков, хотя могли бы обойтись не квадратной головой и использовать тулз то назначению.

    > Не зря же pidfd придумали.

    pidfd_getfd() "придумали" всего год назад, (насколько я помню, он доступен только с  5.6 кернелом), а еще есть громадная куча парка машин где принцип "работает, - не трогай" и народ вполне обходился и обходится без pidfd (не я не против pidfd, наоборот, но действительность однако...)

     
     
  • 6.191, RM (ok), 19:19, 13/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну свой то PID мы знаем ?!
    > А детишек, свои или нет можно легко проверить на отцовство 'ps -o
    > ppid=ххх'

    Скорее ps -o pid --ppid=xxx
    но идея понятна, согласен.
    Хотя еще возможно придется учитывать внуков (потомков потомков), и не факт что ребенок будет жив пока внук работает. shell - он же может форкаться.
    Хотя pidfd тут тоже не поможет в лоб.

    > Пример то - не продакш, а просто в тему,

    А я видел такое в проде, приходилось исправлять.
    Вообще, досадно видеть, что есть куча кода, который almost works.

    > pidfd_getfd() "придумали" всего год назад, (насколько я помню, он доступен только с
    >  5.6 кернелом), а еще есть громадная куча парка машин где
    > принцип "работает, - не трогай" и народ вполне обходился и обходится
    > без pidfd (не я не против pidfd, наоборот, но действительность однако...)

    Мой поинт был в том, что в pidfd была все же потребность.

     

     ....большая нить свёрнута, показать (28)

  • 1.109, Зз (?), 20:33, 28/09/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Короче дело было так. Был огромный легаси баш скрипт, который работает "не трогай". И они такие "ну что, ускорим?". Вот и ускорили.
     
     
  • 2.151, OpenEcho (?), 16:36, 29/09/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Короче дело было так. Был огромный легаси баш скрипт, который работает "не
    > трогай". И они такие "ну что, ускорим?". Вот и ускорили.

    Аха, или просто был конкурс на https://en.wikipedia.org/wiki/Rube_Goldberg_machine

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру