После почти трёх лет разработки опубликована новая версия командного интерпретатора GNU Bash 5.3, используемого по умолчанию в большинстве дистрибутивов Linux. Одновременно сформирован релиз библиотеки readline 8.3, применяемой в bash для организации редактирования командной строки...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=63532
"Добавлена загружаемая команда "strptime", преобразующая текстовое представление даты и времени в эпохальное время (число секунд с 1 января 1970 года)."Есть у кого-нибудь понимание для чего это вот надо?
для сортировки
а почему именно с 1 января 1970 года? ни позже ни раньше... и вобщем не реализовано для всего времени на сколько посчитать не лень...
Потому что это нуль.
Unix timestamp
Нужна новая юникс эпоха.
Не, спасибо, ещё от предыдущей никак отделаться не можем.
дождись 38 года!
до 70 годов дата в компьютере особо никому не нужна была
> а почему именно с 1 января 1970 года?вопросы, которые мы заслужили, мда
как нынче происходит образование у людей в нашей сфере?
по видеороликам на ютубе, что ли?
"Вы в каком полку служили?" ))
> а почему именно с 1 января 1970 года?День рождения Иисуса Христа.
а так конечно круто что Bash развивается!
Не круто.
Тяжело написать на нём что-то. нормальное с >150 строк кода.
Любая обработка команд на нём, кроме самых простейших, превращается в адъ. При этом он ещё и сам очень небезопасен в плане "переменная пустая, удалил корневую". Многие вещи автоматизации приходится самим описывать, в итоге даже простенький скрипт написанный для удобства превращается в монстра на сотни строк кода, где полезных действий на пару строчек.
> Любая обработка команд на нём, кроме самых простейших, превращается в адъ.А любой нетривиальный инструмент превратит вашу жизнь в ад, если сперва не научиться им пользоваться.
А баш превратит жизнь в ад даже когда научишься им пользоваться.
> А баш превратит жизнь в ад даже когда научишься им пользоваться.Вряд ли баш повинен в том, что ваша жизнь — ад.
Вы сначала научитесь, а потом уже расскажете.
да для любителей "в info сами лазьте, я не проктолог, схожу в браузер - загуглю "bash docs"" в жизни вообще много тяжелого. например, на них могут положить.
Всё так, но ты фанбоев-поедателей-кактуса ни за что не убедишь; в их представлении кондовая императивщина на строках это тру-Ъ. Типы не нужны, наработки в ЯП за последние тридцать лет тоже не нужны, да в общем-то ничего не надо, кроме «всё есть строка» и духа семидесятых.
> Тяжело написать на нём что-то. нормальное с >150 строк кода.Такое надо писать на языке программирования, а не на баше (а на баше вообще ничего писать не надо).
По-моему естественный процесс системного администратора. По мере развития навыка и усложнения задач, переходишь к более подходящему инструменту, а не "тянешь портянку", которую трудно поддерживать и не факт, что разрабы учли такую возможность. По крайней мере у меня так происходил процесс освоения ЯП.
ну для каких-то операций с файлома он удобный. Но если чет сложнее, то можно на питоне так же быстро напрогать
Лучший язык для скриптов, особенно если надо что-то автоматизировать и не вводить по 150 комманд в терминал
Лучше Fish человечество еще ничего не придумало, поставил и из коробки все есть, не нужно всякие васяно моды ставить чтобы оболочка работала как и должна по умолчанию.
несовместим с bash == мертворожденное
Исполняй портянки из баш, а руками пиши в фиш. Проблема зерошная.
не знаю, что такое "зерошная", но просто забываешь #!/bin/sh и всё, у инвалидов с fish ничего не работает
Ну да, fish не нужен, потому что у тебя проблемы с памятью — абсолютная корректная кристально чистая без единой ошибки мутного пятнышка логика.
странно, даже до тебя дошло
забываешь #!/bin/sh - не пишешь под sh
не пишешь под sh и удивляешься, что запускают не через sh - диагноз
повторяй себе это, пока у тебя не работает очередной скрипт
естественно, что он не работает, ведь ты его так написал
шелл-скрипты без шебанга это явно не от большого ума
Те кто пишет про несовместимость с башем заранее свидетельствуют о своем пооном непонимании что такое оболочка и как выполняются скрипты
несовместим с sh == мертворожденное
несовместим с bash == АБСОЛЮТНО_ПОЕ*речь конечно же о логин шелле, а от юзера хоть в bzdysh свои команды забивайте
особенно --on-error прекрасно, тем временем минимум половина моих скриптов с set -e
> Лучше Fish человечество еще ничего не придумало, поставил и из коробки
> все есть, не нужно всякие васяно моды ставить чтобы оболочка работала
> как и должна по умолчанию.Какое-то гумно, которое еще и depends от питона зачем-то. Видимо ориентировано на тех кто проносит ложку мимо рта.
Bash как Bat в Windows?
Несравнимо
Одно и то же.
Но есть большой нюанс. Нюанс в фичах.
> Но есть большой нюанс. Нюанс в фичах.Фичи одинаковые. Запуск команд, обработка кодов завершения, условные операторы и циклы. Cmd.exe содержит где-то половину функциональности баша, command.com чуть меньше.
А скриптовать на языке cmd.exe - боль. Неспроста M$ ещё PowerShell запилила.
> А скриптовать на языке cmd.exe - боль. Неспроста M$ ещё PowerShell запилила.Который тоже - боль. Пусть и по другим поводам. Неспроста M$ еще и WSL запилили. А там, таки, обычно - сабж.
Боль — это разбирать выхлоп ls в баше. PS хотя бы позволяет обмениваться структурированными данными. Ну и интеграция в ОС там такая, что без слёз на баш потом просто невозможно смотреть.
Nushell тоже работает со структурированными данными. Притом это таблицы. Что ОООООЧЕНЬ удобно.
"Фичи одинаковые." vs "Cmd.exe содержит где-то половину функциональности баша," Вам не кажется, что это противоречащие друг другу тезисы в одном посте.
Работавший и с тем и с другим, скажу, что второй тезис верен. ) Даже меньше половины и примитивнее.
> Одно и то же.Теоретически все тюринг полные ЯП эквивалентны. Теперь попробуйте написать вашу программу на Брейнфаке, например. Если покажется что это слишком просто, возьмите subleq.
Чатгпт говорит это ерунда, Malbolge поинтереснее. Он не смог дать мне код посчитать факториал числа и утверждает, что никто не решил подобную задачу и весьма не реалистично её решить вручную.
> Чатгпт говорит это ерунда, Malbolge поинтереснее. Он не смог дать мне код
> посчитать факториал числа и утверждает, что никто не решил подобную задачу
> и весьма не реалистично её решить вручную.А ты вот так сходу на subleq факториал посчитаешь? :)
Услышал про Malbolge из сериала Элементарно. В одна серии промелькнул код.
У баша документация получше, и влезла вся в один manpage. Батники по сути своей мало чем отличаются, но после попытки ими попользоваться ощущется подход майкрософта аля "и так сойдёт, наймём десять тысяч индусов написать код на Си для того, что раньше делала портянка".
в один здоровенный manpage, и не факт что вся
> в один здоровенный manpage, и не факт что всяЕсли этого мало, то есть интерактивный info bash. На самом деле, advanced bash scripting осваивается достаточно быстро, если есть желание использовать баш как ЯП.
не, в info сами лазьте, я не проктолог, схожу в браузер - загуглю "bash docs", если уж приспичит
отлично-отлично, "я программист, мне маны читать некогда" 2.0
хмм, почитать километровый man "page" или полноценную документацию...
интересно, есть ли в мире такая "page", на которой бы поместился этот man?
Как сказать, что ты не читал ни манпейдж, ни референс мануал для баша, не говоря, что ты не читал ни манпейдж, ни референс мануал для баша.Я тебе один умный вещь скажу, ты только не обижайся - они отличаются примерно ничем, кроме порядка размещения параграфов.
Зато man bash (как и info bash, который и есть референс мануал) уже лежат у тебя на локальном диске.
Поэтому своим "схожу в браузер - загуглю" ты в лучшем случае убьешь 15 минут тупо впустую. Это в лучшем, если тебе не подсунут какой-нибудь замшелый пересказ, скопипащенный с лиссярия или у федрочука какого-нито.
Но ты не унывай. Ты ведь программист, да? Зачем тебе какие-то маны? Их только маньяки читают, и то - не все.
> не, в info сами лазьте, я не проктолог, схожу в браузер -
> загуглю "bash docs", если уж приспичитофигеть не встать
man -- это краткая документация
info -- это полная, с примерами
а загуглить -- это "одна бабка сказала"давайте уж сразу: не хочу учиться, хочу жениться...
> но после попытки ими попользоваться ощущется подход майкрософта аля "и так сойдёт, наймём десять тысяч индусов написать код на Си для того, что раньше делала портянка".Вот прямо первое (и последующие) ощущеия от баша.
Назначение - да. Но синтаксис несовместим, поэтому, если нужна кроссплатформенность скрипта (запуск того же скрипта под любой ОС), нужно провнерять, под какой системой запущен скрипт и использовать соответствующие ветви скрипта. Я так всегда делаю, поэтому мои скрипты работают под любой ОС (дополниетльно к перечисленным также под BSD и Haiku).
Для этого изобрели Pyton и Java.
Как уже написали, Bash не корректно сравнивать с CMD, скорее с Powershell.
В Powershell можно жить вообще без графики, при желании.
>Добавлена загружаемая команда "kv", формирующая ассоциативный массив на основе набора данных в формате "ключ значение".Как неожиданно и приятно.
Ого! Эпичная новость! Каждый линуксоид в открывая терминал работает с ним.
Ребята, мой вам совет. Переходите на nushell. Пока не поздно.Лучшая оболочка и язык программирования. Кросс-платформенная.
Уже давно.
Где-то об этом говорил уже. Может, и лучше, но чтобы использовать, нужно установить. Чтобы установить, нужно подключиться к Интернету. Для пользователя может быть неудобно - вы даете ему скрипт и требуете выполнения ряда условий, чтобы он у него заработал. Некрасиво. Проще "помучиться" с сабжем и получить тот же результат без накладных проблем.
> Чтобы установить, нужно подключиться к Интернету.Зачем от него отключаться?
Как-то на конторе один раз всплыла критичная проблема, которую за 10 минут обошли скриптом на ноде. Наверное можно было и на баше/цмд/повершелле, но надо было кроссплатформенно и очень быстро. Ничего, кому было срочно - поставили ноду и запускали скрипт без претензий. Потом уже через несколько часов починили нормально, но скрипт сохранили на всякий случай.Если пользователю нужен скрипт, но у него _нет_ интернета (интересно, как он этот скрипт получил тогда) - значит пользователь достаточно умный и сможет сам себе переписать исходный скрипт на что угодно в наличии.
> интересно, как он этот скрипт получил тогданет интернета != нет интранета
с другой стороны, подавляюще большинство уже ничего он-премом не держит, все продались облакам
> Ребята, мой вам совет. Переходите на nushell. Пока не поздно.
> Лучшая оболочка и язык программирования. Кросс-платформенная.Вот лично я шеллом пользуюсь для системной автоматизации на 80%. А этой штуки нет в репах дистро. Конец истории.
Речь не про локалхосты, а про продакшен.
Эта штука есть в репах дистра. Многих.
Только я вообще ничего не понял. Там один бинарник, всего.Я, конечно спорить не буду. Но «нет в репах- конец истории» выглядит смешно в современных реалиях. Как и понятие «система» в 2025 году. Система- это несовместимые баш портянки? Сотни несовместимых между собой мини программ? Сотни каких-то идиотских опций у каждой? Regex, который у этих программ у всех разный?
Конечно нет ))) Это скрипты на "пистоне", которые просто "идеально совместимые" от версии к версии )))
> Конечно нет ))) Это скрипты на "пистоне", которые просто "идеально совместимые" от версии к версии )))Да ладно тебе, питон — отличный язык! Причем в каждой минорной версии! ))
Ребята, мой вам совет. Переходите на Powershell. Пока не поздно.
Лучшая оболочка и язык программирования. Кросс-платформенная.
> В новой версии Readline предложена опция "search-ignore-case" для поиска в истории без учёта регистра символов.На году две тысячи двадцать пятом до кодерков начало доходить, что регистрозависимость неудобна.
Читать умеешь? Добавлена, как необязательная опция. И это не означает, что регистронезависимость это хорошо.
> необязательная опция
> это не означает, что регистронезависимость это хорошоВижу, что ошибся. Не дошло. Ну, подождём ещё 55 лет.
если ничего слаще ср/м или какого-нито продос на спектруме не едал - то не только неудобна, но даже невообразима.
Ну так-то CP/M для людей делалась, в отличие от. Но вы, конечно, можете объяснить, где регистрозависимость удобна.
В си на pdp11. Потому что строки это массивы байтов, а раздуплять регистр не научились даже в 2025. Линус так и сказал: идеально сделать для всех языков мира не можем, поэтому вообще делать ничего не будем. Хотя казалось бы, такая простая задача — сделать good enough. Даже в Питоне справились.
Ничего слаще лисп-машины симболикса я за 20+ лет в индустрии не видел. И не увижу уже, пожалуй.
> Результаты выполнения команды отдаются как результат подстановки или записываются в переменную REPLY.Я не проверял на практике, но судя по документации, здесь ошибка. Переменная REPLY используется в направлении, противоположном указанному: если использовать символ |, то будет подставлено не значение, которое команда выведет в stdout, а значение, которое она присвоит в переменную REPLY.
А с функциями будет работать?Если да, то больше не будет затыков и проверить что вернула функция и вывод в переменную запихать.
Ещё бы вложенные массивы добавили и я доволен.
Вложенные хештейблы хотя бы.Функции можно дёрнуть так ${|read -r REPLY< <(funcname);} или так ${|read -r REPLY<<<$(funcname);}
Но это не сильно отличается от существующего. Если честно, не совсем понимаю, в чём были сложности раньше. То, что сабшел не видит не экспортированные переменные, иногда создавало определённые проблемы, но это тут не поможет. Какой-то узкоспецифический кейс работы с локальными переменными?
Я думаю, что кейс в том, что функция _модифицирует_ переменные.
Я обычно при написании скриптов предпочитаю ограничиваться /bin/dash, а когда его возможностей не хватает, пишу на питоне.
Переусложнять bash фичами такая себе затея, там ещё лет 10 ждать когда новые фичи станут повсеместно распространены.
Писать под линукс и выискивать башизмы - бред
Писать под якобы POSIX и надеяться, что ваша портянка якобы будет работать под BSD - еще больший бред
> Переусложнять bash фичами такая себе затея, там ещё лет 10 ждать когда
> новые фичи станут повсеместно распространены.Зато башскрипты через 10 лет - запускаются. Без переписывания. В отличие от питона, который через 3 года проще сразу rm *.py сделать.
> Например, можно выбрать сортировку по имени (GLOBSORT=name), размеру (GLOBSORT=size) или времени изменения (GLOBSORT=mtime), а также определить прямой (от меньшего к большему) или обратный (от большего к меньшему) порядок сортировки (например, при "GLOBSORT=-size" вначале будут показаны самые большие файлы).Но сортировку по-человечески они так и не осилили. Чтобы 2.txt шёл бы после 1.txt но до 10.txt.
01,02,..,10
Вы так и не осилили натуральную сортировку в sort ? sort -V
Наберут по объявлению...
Натуральная сортировка есть в ls, если очень надо. Только не помню, чтобы мне было не всё равно на порядок файлов.
Если все файлы на компьютере наизусть помнишь, то может и действительно всё равно. Но зачем тогда тебе файловая система? А если надо что-то найти быстренько глазами — приходится сортировать.
Искать глазами работает только когда все файлы на компьютере наизусть помнишь, я наблюдаю тут некоторое противоречие. Чем поможет натуральная сортировка в баше тоже не понятно -- для представления списка файлов пользователю обычно используется ls.
> для представления списка файлов пользователю обычно используется ls.Для тех, кто не пользуется терминалом я могу раскрыть секрет. ls обычно не используется. Он используется только тогда, когда автодополнения недостаточно по каким-то причинам. Может быть потому что хочется не просто список файлов/директорий, а с красивыми цветами, чтобы типы были бы видны, чтобы отличать директорию от симлинка, например. Может ещё по какой причине, но это бывает редко.
Как автодополнение связано с удобочитаемым представлением пользователю? Формат может быть совершенно любым. Ну и каким боком натуральная сортировка к автодополнению тоже не ясно, я могу понять ещё, если хочется сделать обработку файлов в порядке, в котором их видит пользователь в ФМ.
> ls обычно не используетсяРегулярно используется, да хотя бы из-за этого: ls -ltrh
Чем ты мне по времени отсортируешь так же удобно? А по размеру? А с исключением бэкапных файлов? А там и другие фильтры полезные вообще-то есть…
> ls обычно не используетсяв твоем пузыре любителей цветного вывода - может и так, но за всей отучайся говорить
Когда файлы наизусть знаешь ничего искать не надо, можно по памяти вбивать, в худшем случае постучать по табу, что-нибудь да вывалится. Вот когда не знаешь, но примерно представляешь как должно выглядеть — сортировка в режиме для человека просто необходима.
Когда уже буфер обмена починят? ctrl+c и ctrl+v не работает!