The OpenNET Project / Index page

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



"Доступен ShellCheck 0.9, статический анализатор для shell-скриптов"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Доступен ShellCheck 0.9, статический анализатор для shell-скриптов"  +/
Сообщение от opennews (??), 27-Дек-22, 12:01 
Опубликован выпуск проекта  ShellCheck 0.9, развивающего систему статического анализа shell-скриптов, поддерживающую выявление ошибок в скриптах с учётом особенностей bash, sh, ksh и dash. Код проекта написан на языке Haskell и распространяется под лицензией GPLv3. Предоставляются компоненты для интеграции с Vim, Emacs, VSCode, Sublime, Atom и различными интегрированными средами, поддерживающими GCC-совместимый вывод сведений об ошибках...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=58394

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 27-Дек-22, 12:01   +32 +/
must have для всех местных экспертов
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #17, #26

2. Сообщение от Анонимemail (2), 27-Дек-22, 12:09   +4 +/
Титаническая программа! От всей этой шелл-лапши никуда не деться, поэтому такой анализатор должен быть очень полезен.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #32

3. Сообщение от ip1982 (ok), 27-Дек-22, 12:10   –2 +/
Хорошо.
Ответить | Правка | Наверх | Cообщить модератору

4. Сообщение от Анонус (?), 27-Дек-22, 12:12   +7 +/
>отсутствие пробелов при сравнении "[[ $foo==0 ]]", наличие пробелов "var = 42"

Хороший язык, продуманный. Консистентный, я бы сказал.

Ответить | Правка | Наверх | Cообщить модератору

6. Сообщение от Аноним (6), 27-Дек-22, 12:18   –2 +/
Нужен новый shell, безопасная работа с памятью которого обеспечивается во время компиляции через проверку ссылок, отслеживание владения объектами и учёт времени жизни объектов (области видимости), а также через оценку корректности доступа к памяти во время выполнения кода. Также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #7, #19, #21, #29, #93

7. Сообщение от Анонус (?), 27-Дек-22, 12:22   –1 +/
> Нужен новый shell, безопасная работа с памятью которого обеспечивается во время компиляции
> через проверку ссылок, отслеживание владения объектами и учёт времени жизни объектов
> (области видимости), а также через оценку корректности доступа к памяти во
> время выполнения кода. Также предоставляет средства для защиты от целочисленных переполнений,
> требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает
> ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок
> и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических
> ошибок.

Нужен. Например на Lua.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #10

8. Сообщение от Аноним (1), 27-Дек-22, 12:24   +/
у раста по части памяти всё хорошо в сравнении с дедовыми плюсами, ведь она у него не течёт как у ски в месячные
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #9, #28, #33

9. Сообщение от Аноним (9), 27-Дек-22, 12:29   +/
Уровень лексикона растоманов понятен
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #11

10. Сообщение от Аноним (10), 27-Дек-22, 12:37   –1 +/
Идеальный вариант!
Самый быстрый некогда интерпретатор. Достаточно пластичный и мощный язык.
На фоне баша, ему можно простить даже кривость инопланетного синтаксиса.

Есть ли варианты, вроде IPython и Xonsh?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #7 Ответы: #14, #15

11. Сообщение от Вы забыли заполнить поле Name (?), 27-Дек-22, 12:38   +2 +/
Большинство местных растоманов  в пуберантном периоде
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #40

12. Сообщение от Аноним (14), 27-Дек-22, 12:38   –1 +/
Попытки из шелла и скриптовых языков делать что-то квазитипизированное - это клиника.
На шелле не надо программировать. Он не для этого. В юникс даже не обязательно писать на скриптовых языках. Вас никто не заставляет использовать инструменты, с мощью которых вы не можете справиться.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #25, #44

13. Сообщение от commiethebeastie (ok), 27-Дек-22, 12:39   +3 +/
Line 1:
rm -rf /usr /bumblebee
       ^-- SC2114 (warning): Warning: deletes a system directory.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #52

14. Сообщение от Аноним (14), 27-Дек-22, 12:39   +2 +/
Язык хороший, но в качестве замены шелла не взлетит. Замена шеллу - это перл. Нравится вам это или нет. И это уже 30 лет так.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #16

15. Сообщение от Аноним (10), 27-Дек-22, 12:40   –1 +/
Кривой баш, в любом случае, давно уже требует замены. Привыклю корячиться буквой зю, и ничего не меняется. Школьники уже даже умудряются боготворить его идеальность.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #10 Ответы: #22

16. Сообщение от Аноним (10), 27-Дек-22, 12:41   –1 +/
Есть ли у перла варианты типа Xonsh?
Perl конечно... так себе замена то. Вот это видеть ГА;) К*Г)*а4гн8кн82 вместо [[ $RE -gt 2 ]]
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #14

17. Сообщение от Жироватт (ok), 27-Дек-22, 12:41   +2 +/
Да в принципе для всех нужная, но не необходимая.
Ошибается даже самый маститый гуру консоли, особенно с недосыпу или в цейтноте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #76

19. Сообщение от Аноним (19), 27-Дек-22, 12:43   –3 +/
Power Shell.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #31

21. Сообщение от Жироватт (ok), 27-Дек-22, 12:47   +2 +/
Нужен новый шелл-ланг, который как %хайповый_язычок%, но другой.
Под новый шелл-ланг нужен новый интерпретатор, мегабайт на сто, как МощныйРакушка.
Под новый интерпретатор нужно новое системное окружение, где он *сможет_раскрыть_потенциал*.
Под новое окружение нужны новые принципы создания аварийных и удаленных оболочек, чтобы юзер не умер в чистом sh.
...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #103

22. Сообщение от Аноним (22), 27-Дек-22, 12:47   +2 +/
Баш ужасен, и с этим не поспоришь, но позикс шелл с bsd-шными coreutils ещё хуже — там потенциал выстрелить себе в ногу на два порядка выше
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #24

23. Сообщение от Аноним (23), 27-Дек-22, 12:48   –2 +/
Настоящими программистам все эти проверки не нужны, они нужны только всяким там, которые даже язык не знают на котором пишут
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #42, #49

24. Сообщение от Аноним (10), 27-Дек-22, 12:54   +/
Суть в том, что баш это очень кривая подпорка, на сегодняшний день.
Люди делают его замены, меньшей кровью. Успешно. Оболочка ZSH недалеко ушла, но куда удобней.
Fish ушел еще дальше и боли меньше. Но концептуально, на претендента замены подходят лишь IPython и  Xonsh.
Т.е. люди это осознают давно уже и даже есть вариант - пайтон в основе.
Интересно, пробовал ли кто-то луа.. люди на реддите очень хотят луа на этом месте видеть. И даже есть интересные варианты использования. Но по существу, воз и ныне там.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22 Ответы: #27

25. Сообщение от Аноним (22), 27-Дек-22, 13:02   +/
Если шелл не для того чтобы программировать, то почему в System V на нём писали программы?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #30

26. Сообщение от Аноним (26), 27-Дек-22, 13:08   –7 +/
>Код проекта написан на языке Haskell

Но практически бесполезно. Ни GNU Haskell, ни gcc-haskell не наблюдается.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #53

27. Сообщение от Аноним (22), 27-Дек-22, 13:08   +/
Проблема в том, что эта подпорка есть везде. Может быть когда-нибудь, лет эдак через -цать, когда питон станет главной зависимостью во всех линуксах, люди начнут перебираться на шелл на основе него, а пока — скрипты для пакетов будут писаться на sh с пригоршней башизмов, клей в Dockerfile будет писаться на sh с привкусом смузи и томатного гозе и весь мир будет прилаживать костыли и подпорки к получившейся хтони
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #59, #138

28. Сообщение от Аноним (26), 27-Дек-22, 13:13   –2 +/
Ещё как у Раста течёт. Этож способ защиты от use-after-free.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

29. Сообщение от Аноним (26), 27-Дек-22, 13:14   +/
Какая ещё компиляция при скриптовании?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #38

30. Сообщение от Аноним (26), 27-Дек-22, 13:17   +/
Сам SysVinit на Сишке. А на bash там писали и пишут скрипты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #25 Ответы: #36

31. Сообщение от амоним (?), 27-Дек-22, 13:22   –3 +/
вот кстати, отличное решение. есть команды - согласен. и вывод, в json есть. который всегда можно распарсить, не непонятными регулярными выражениями, которые разваливаются на ходу, а нормальным json парсером, получить те данные которые нужно и проч.
единственная проблема - родные системные утилиты не дают выхлоп в таком формате.
а башем, парсить строковый вывод - это про времена, когда всю ось мог написать один Линус. а сегодня - это про мазохизм.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #19 Ответы: #39

32. Сообщение от анон (?), 27-Дек-22, 13:29   –1 +/
Всегда считал, что вместо systemd надо было вложиться в такой анализатор или генератор скелета скриптов.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #35, #55, #118, #8

33. Сообщение от анон (?), 27-Дек-22, 13:30   +6 +/
Я бы рассказал шутку про раст, но она не поместится в стек.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8 Ответы: #67

35. Сообщение от Аноним (35), 27-Дек-22, 13:43   +3 +/
и как ты на башпортянках реализуешь асинхронщину и параллельный взаимозависимый запуск служб? да ты споткнешься уже на простейшей задаче "дождаться, когда ядро обнаружит /dev/sda" (нет, делать по таймеру проверку на существование /dev/sda -- это не верное решение)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #46, #58, #75, #182

36. Сообщение от Аноним (22), 27-Дек-22, 13:50   –1 +/
Я не готоврю про sysVinit. Я говорю про AT&T UNIX System V. diff3, spell, basename, uuto, dirname, man, install и многие другие команды написаны на shell.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #30 Ответы: #41, #51

38. Сообщение от Ноня (?), 27-Дек-22, 13:57   +/
sbcl когда-нибудь видел? вот это оно
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

39. Сообщение от Аноним (39), 27-Дек-22, 13:57   +6 +/
пожалуйста, изложите свои мысли в виде json-а а то вас трудно парсить
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

40. Сообщение от burjui (ok), 27-Дек-22, 14:02   +1 +/
Как и всех остальных -манов на этом ресурсе, что очевидно из всей демагогии в комментариях под любой новостью о Rust, да и не только. Настоящих спецов здесь крайне мало, будь то растоманов, сишников, приплюснутых, скорлупщиков и т.д. Рассадник самоуверенной школоты, короче. Сам не знаю, зачем читаю комментарии и отвечаю на них, но от детерминизма не убежишь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #54

41. Сообщение от ПАНК программист а не кодер (?), 27-Дек-22, 14:06   +/
Так и деды и в лаптях на телеге когда-то ездили, и что?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

42. Сообщение от burjui (ok), 27-Дек-22, 14:06   +3 +/
Есть одна проблема с вашим определением термина "настоящий программист": таких не существует. Нет и не было за всю историю человечества ни одного индивида, который бы не совершал ошибок. Конечно, если это мелкий одноразовый скрипт для не слишком важной ерудны, то цена ошибки настолько мала, что можно обойтись и без статического анализатора. Но если он уже есть, не пользоваться им - безумие.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

44. Сообщение от Ноня (?), 27-Дек-22, 14:16   +/
>Попытки из шелла и скриптовых языков делать что-то квазитипизированное - это клиника.

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

>На шелле не надо программировать.

Надо, пайплайн на шелле проживёт дольше портянки на питоне.

>В юникс даже не обязательно писать на скриптовых языках.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #45

45. Сообщение от ПАНК программист а не кодер (?), 27-Дек-22, 14:36   +/
Всё-то, может, и по делу, и верно, но только суть баша от этого не меняются: встратый синтаксис, несколько слоёв expansion-ов, shopt-магия и так далее. Баш, может быть, мощный инструмент, хороший инструмент, но точно не удобный или современный инструмент, о чём тут спорить вообще.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #69

46. Сообщение от Random (??), 27-Дек-22, 14:37   +3 +/
Никогда до systemd не встречал ситуации, что система не может стартовать, хотя бы и в неполном виде, из-за того, что не может чего-то дождаться.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #57

49. Сообщение от Ноня (?), 27-Дек-22, 14:45   +/
Так там одна часть в рекламке шеллчека так и гласит: ищут ошибки новичков, и шоб никаких криптик мессаджес!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23

50. Сообщение от Аноним (-), 27-Дек-22, 14:55   –3 +/
> статического анализа shell-скриптов

Блин, если вам это понадобилось, вы что-то, вероятно, делали не так.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #133

51. Сообщение от Аноним (39), 27-Дек-22, 14:55   +/
>diff3, spell, basename, uuto, dirname, man, install и многие другие команды написаны на shell.

все перечисленные тобой утилиты написаны на Си

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #66, #91

52. Сообщение от Аноним (-), 27-Дек-22, 14:55   +/
Ну, как видишь, работает. Не на...ли :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #64

53. Сообщение от Ноня (?), 27-Дек-22, 14:56   –1 +/
Зато есть GNU/MIT Scheme.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

54. Сообщение от Аноним (-), 27-Дек-22, 14:58   –2 +/
>Сам не знаю, зачем читаю комментарии и отвечаю на них

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #63

55. Сообщение от Аноним (-), 27-Дек-22, 14:58   +1 +/
> генератор скелетов в шкафу

Извините, не удержался.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

57. Сообщение от Аноним (-), 27-Дек-22, 14:59   +1 +/
Даже кернел так то умеет параметр rootwait. Догадаешься почему? А так то ты видимо еще много чего не встречал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46 Ответы: #65

58. Сообщение от анон (?), 27-Дек-22, 15:00   +9 +/
> реализуешь асинхронщину и параллельный взаимозависимый запуск служб

А оно надо? Там выйгрыш ничтожно мал, если раскрутка только дисков занимает минут 5 на сервере, что мне с миллисекунд победы?
Даже на домашнем пк можно сделать systemd-analyze blame и обалдеть, как все плюсы системды разбиваются об ожидание mount или dhcp.
А еще мое любимое при выключении,  Waiting for process: "Дохлый недоеденный енот" .. 1s / 10min

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

59. Сообщение от Аноним (-), 27-Дек-22, 15:06   +/
Питон это антипод юниксвэя. Может сделать что угодно, но делает все одинаково паршиво.

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

А приколитесь, шелскрипт эпохи питона 2.4 прекрасно заработает на моей системе. Без танцев с бубнами. А теперь попробуйте это с скриптом на питоне 2.4 в современной системе повторить и чтоб не переписать минимум половину при этом. Ну и вот зачем бы такая системная автоматизация нужна? Чтобы убивать на ее майнтенанс времени больше чем она экономит на решении тех задач?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27 Ответы: #120

60. Сообщение от Аноним (60), 27-Дек-22, 15:08   +/
У баша какие-то проблемы с совместимостью. Несколько лет всё прекрасно работало, а тут он в 5.2 фейлится на ?() в $() и надо теперь вместо $() использовать обратные кавычки. При этом, в синтетическом коде это не проявляется и надо было догадаться, где проблема.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #124

63. Сообщение от burjui (ok), 27-Дек-22, 15:41   –1 +/
Я считаю, что кодить меня научит только практика, чем я и занимаюсь. Я больше не разрабатываю софт профессионально после выгорания и долгих лет борьбы с депрессией, но дело идёт на поправку, последние несколько месяцев я слежу за своим питанием (кето, витамины и т.д.) пью Страттеру (для СДВГ) и это приносит плоды - появилась куча энергии, исчезла вечная усталость, и теперь я после работы сантехником и в выходные уже недель шесть допиливаю свою библиотеку risky (https://github.com/burjui/risky/tree/v0.4.0) для кодирования инструкций RISC-V (пока только RV32I + M + Zicsr): написал документацию, под две сотни тестов, улучшил API. Потом буду добавлять другие расширения, займусь своим игрушечным компилятором (https://github.com/burjui/rambo), который тоже нуждается в переработке: сделаю внятное выделение регистров, переделаю герерацию RISC-V инструкций (сейчас там примитивный говнокод), добавлю новые оптимизации (сейчас только constant folding + propagation и инлайнинг функций), языковые конструкции. Потом буду изучать теорию типов, чтобы вообще понимать, что я делаю. Я всегда изучал новые ЯП для расширения кругозора и тренировки мозга (вот недавно пощупал koka (очевидная шутка для местных петросянов)), и продолжу это делать, пока он у меня есть.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #110, #119

64. Сообщение от commiethebeastie (ok), 27-Дек-22, 15:44   –1 +/
Действительно работает, если убрать пробел, то ложного срабатывания не будет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

65. Сообщение от Сушилинemail (?), 27-Дек-22, 15:45   +/
Объясните пж не шарящиму, что это за зверь?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #57 Ответы: #68, #97

66. Сообщение от Аноним (-), 27-Дек-22, 15:47   +/
В этом юниксвэй и состоит: объединять быстрые эффективные кирпичики вон тем координатором через пайпы. А то что народ из инструмента для glue-логики зачем-то временами чуть не мегаприложухи пытается, так что сабж требоваться начинает - бывает и такое, конечно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #71

67. Сообщение от burjui (ok), 27-Дек-22, 15:53   –1 +/
Я бы рассказал шутку про C, но Й№28(%3?*№3Х{>?5ц
Segmentation fault
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #33 Ответы: #136

68. Сообщение от Роман (??), 27-Дек-22, 16:05   +/
Например ваш raid массив на 48 дисков инициализируется не мгновенно и root device таким образом недоступен если не подождать
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #74

69. Сообщение от Аноним (-), 27-Дек-22, 16:14   +/
>синтаксис

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

>несколько слоёв expansion-ов, shopt-магия

Да наплевать. Наквотил разик, запомнил и забыл. Больше двух уровней обратных кавычек редко бывает. Из опций только трассировка и может быть полезной в основном, ну -e плюс-минус, магии в этом нет.

>не удобный

busybox ash делает бррррр, работа делается, что ещё надо? Даже репл есть.

>или современный

Т.е. знания шелла не обесцениваются. Это наоборот плюс.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #45 Ответы: #162

71. Сообщение от Ноня (?), 27-Дек-22, 16:18   +/
>А то что народ из инструмента для glue-логики зачем-то временами чуть не мегаприложухи пытается

Так выходит же - почему не пытаться?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #99

72. Сообщение от Аноним (72), 27-Дек-22, 16:18   –1 +/
Они не могли придумать более оригинального названия? И как мне гуглить это и искать в репах?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #79, #127

74. Сообщение от 1 (??), 27-Дек-22, 16:28   +2 +/
А потом "что-то пошло не так" и система не загружается никогда.
И Ctrl+C не нажать как в BSD и попробовать починить систему в /bin/sh
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #80, #96

75. Сообщение от Аноним (75), 27-Дек-22, 16:38   +/
> да ты споткнешься уже на простейшей задаче "дождаться, когда ядро обнаружит /dev/sda"

Ты в курсе, что pid=0 запускается, когда ядро уже загружено и все проинициализировало. Типичный фанат поттеринга.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35 Ответы: #85

76. Сообщение от Аноним (-), 27-Дек-22, 16:44   –2 +/
Новые мозги анализатор не поставит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #106, #130

79. Сообщение от Аноним (-), 27-Дек-22, 16:52   –1 +/
От названия прямо-таки пахнет тем, что эти ребятки юниксом никогда не проникались. Ещё для бинго можно было бы домен .io зарегать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

80. Сообщение от Роман (??), 27-Дек-22, 16:57   +/
> А потом "что-то пошло не так" и система не загружается никогда.
> И Ctrl+C не нажать как в BSD и попробовать починить систему в
> /bin/sh

Нажимать ctrl+c на bsd системах пожалуйста, кто ж запрещает

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

83. Сообщение от Самый умный из вас (?), 27-Дек-22, 17:20   +1 +/
Если человек в своём профиле пишет, что ему нравится кодить на sh, к нему стоит присмотреться
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #86

85. Сообщение от Аноним (35), 27-Дек-22, 17:24   +2 +/
> pid=0 запускается

Ты в курсе, что процесса с pid=0 не существует? Типичный критикан системд.

> ядро уже загружено и все проинициализировало

И кто же это все проинициализировал? Да ядро даже /dev тебе не подключит, пока явно не попросишь или не выставишь соответствующий конфиг перед компиляцией. (Спойлер: дистрибутивные ядра его не выставляют.) В общем критикан системд дважды грубо ошибся в одном предложении. "Это уметь надо!"

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75 Ответы: #98

86. Сообщение от 1 (??), 27-Дек-22, 17:36   +2 +/
психиатрам
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #113, #114

88. Сообщение от Xasd8 (?), 27-Дек-22, 17:37   –2 +/
> а использование "echo {1..10}" будет выделено как несовместимое с dash и sh.

ох тыж! ды кому какое дело до этих dash и sh ?

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #92, #95

89. Сообщение от Мононим (?), 27-Дек-22, 18:09   –1 +/
Не хватает только канпелятора.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #90

90. Сообщение от Мононим (?), 27-Дек-22, 18:10   +/
А, да, ещё объект-ориентированности, статической типизации и обязательно всё на хрусте.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89

91. Сообщение от Аноним (22), 27-Дек-22, 18:10   +/
Не в System V. Значит всё же он изначально и задумывался для программирования утилит
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51

92. Сообщение от Аноним (22), 27-Дек-22, 18:26   +1 +/
Меинтейнерам пакетов Debian
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

93. Сообщение от Аноним (93), 27-Дек-22, 18:54   +/
https://www.oilshell.org/
https://www.nushell.sh/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #115

94. Сообщение от warlock66613email (ok), 27-Дек-22, 18:54   +/
Штука отличная.
Ответить | Правка | Наверх | Cообщить модератору

95. Сообщение от warlock66613email (ok), 27-Дек-22, 18:55   +1 +/
Тому кто хочет чтобы его скрипт можно было запустить? На нормальной системе, где нет места bash я имею в виду.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #141

96. Сообщение от Аноним (-), 27-Дек-22, 18:56   +/
> А потом "что-то пошло не так" и система не загружается никогда.

Вообще-то один из пойнтов RAID это сделать "что-то пошло не так" более редким явлением.

> И Ctrl+C не нажать как в BSD и попробовать починить систему в /bin/sh

Что и как ты будешь чинить, если рутфс нету, чудак?

А если очень надо то init=/bin/bash в бутлоадере - и чини себе. Но нормальные люди такое извращение если и практикуют то в сильно специальных случаях. Если тебе приходится этим заниматься, 99% что ты занимаешься фигней, и 1% - что у тебя ну вот реально нестандартная системная задача.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74 Ответы: #102, #117

97. Сообщение от Аноним (-), 27-Дек-22, 19:02   +/
> Объясните пж не шарящиму, что это за зверь?

Ждет появления девайса(-ов) с рутфс чтобы смонтировать оный. В зависимости от конфигурации устройство на котором рутфс размещена может появиться и заметно после момента когда кернел уже был технически готов init пытаться запускать "сам по себе". Если кернел попытается инит запустить и не найдет его - он довольно крепко на это дело обижается. А вот так - пожалуйста, потуповэйтит появления нужного устройства вместо того чтобы сразу обижаться на отсутствие инита.

Мало ли, разным железкам разное время на инициализацию надо. А старт с initrd это не единственный возможный вариант. Можно и без initrd стартовать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

98. Сообщение от Аноним (-), 27-Дек-22, 19:05   +3 +/
> Ты в курсе, что процесса с pid=0 не существует? Типичный критикан системд.

Вроде в его роли ядерный тред выступает. Который потом 1 создает и инит.

>> ядро уже загружено и все проинициализировало
> И кто же это все проинициализировал?

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

> В общем критикан системд дважды грубо ошибся в одном предложении. "Это уметь надо!"

Малацца, анон. Я вон тут поху мастеркласс насчет самбы дал, точнее ksmd. Букмарки иногда апдейтить надо, фигли.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85

99. Сообщение от Аноним (-), 27-Дек-22, 19:10   +/
> Так выходит же - почему не пытаться?

Ну да, а у другого тут выходит видео блендером редактировать. Можете попробовать еще объяву на забор в автокаде написать, почему не пытаться? :)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #71 Ответы: #140

101. Сообщение от Kirikekeksemail (ok), 27-Дек-22, 19:33   +/
Много лет выпущенная гуглем Salt bash записки на пипифаксе для меня прям настольный пипифакс. А анализатор, это хорошо, особенно когда свой забытый скрипт надо переделать. Тем более что спросить про bash стеснительно, как пёрнуть в обществе, а очень напрасно. Не любо не слушай, а врать не мешай. Я помню несколько ситуаций, когда высоколобые многомудрые девы реально готовы были потратить нехилые деньги на проблемы решаемые однострочником на баш. Да и гугловое руководство тоже похоже на "к вящему сожалению совсем без bash не получится, но хотябы делайте так, а?"
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #104

102. Сообщение от YetAnotherOnanym (ok), 27-Дек-22, 19:38   +/
> Что и как ты будешь чинить, если рутфс нету, чудак?

Какой-то рут есть же, не? Инитрамфс для чего придумали?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96 Ответы: #105

103. Сообщение от GUIX (?), 27-Дек-22, 19:40   +/
Про Scheme уже было?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #139

104. Сообщение от Карабьян (?), 27-Дек-22, 19:41   +/
Какой области девы? По специализации
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101

105. Сообщение от Аноним (-), 27-Дек-22, 19:58   +/
> Какой-то рут есть же, не?

Ну да, путем телепортации появляется.

> Инитрамфс для чего придумали?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102

106. Сообщение от анонна (?), 27-Дек-22, 21:05   +4 +/
но он позволит создавать скрипты не подверженные опасным ошибкам. я вообще удивляюсь как никому в голову не пришло создать такой инструмент раньше. это же по сути анализ текста и сверка его с правильным шаблоном(хотя и несколько сложнее). кстати в си и с++ такой анализатор был бы просто спасением в свое время. хотя если с си это можно сделать, то с плюсами куда сложнее. там столько напихали в язык  и продолжают пихать, что это окажется той еще задачкой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #123

107. Сообщение от EuPhobos (ok), 27-Дек-22, 21:17   –3 +/
Совет на скриншоте: "используйте bc или awk" просто "гениальный"..
"Не используйте встроенные фишки в интерпретаторе, лучше создайте ещё один процесс через конвейер и посчитайте в нём" - что за бред?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #111, #112, #121

110. Сообщение от Аноним (-), 27-Дек-22, 22:29   +1 +/
>стена текста

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #116

111. Сообщение от Аноним (39), 27-Дек-22, 23:05   +1 +/
какие еще встроенные фишки для дробных чисел, ты о чем ?

n=3.6
if (( n > 3.5 )); then
  echo $n
fi

даже сам bash-интерпретатор вылетает от такого кода:
строка 5: ((: 3.6 > 3.5 : ошибка синтаксиса: недопустимый математический оператор (неверный маркер «.6 > 3.5 »)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107

112. Сообщение от Аноним (112), 27-Дек-22, 23:06   +/
на том же скриншоте написано, что шелл не умеет работать с дробями (а ash, dash, bash вроде как не умеют
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107

113. Сообщение от Самый умный из вас (?), 27-Дек-22, 23:16   +1 +/
Или девушкам, как к завидному жениху и уверенному в себе мужчине? 🤔
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86

114. Сообщение от Аноним (-), 27-Дек-22, 23:17   +/
Вот это и скажешь человеку, умеющему кодить на шелле, когда в очередной раз в слезах к нему обратишься с тем, что ты куда-то нажала и оно перестало запускаться, хорошо, дорогуша?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86

115. Сообщение от Аноним (39), 27-Дек-22, 23:22   +/
лучше уж es-shell воскресить
https://wryun.github.io/es-shell/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93

116. Сообщение от burjui (ok), 27-Дек-22, 23:39   –1 +/
Да мало ли, что они тебе говорят. Сейчас бы прислушиваться к мнению какого хрена с опеннета, у которого нет даже ника, не то что кода, знаний и опыта. Разве что опыта демагогии 😁
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110 Ответы: #122

117. Сообщение от Random (??), 28-Дек-22, 01:00   +/
Иногда надо загрузиться на деградированном рейде - например, без одного диска в зеркале.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #96

118. Сообщение от Анонимemail (2), 28-Дек-22, 01:18   +/
> Всегда считал, что вместо systemd надо было вложиться в такой анализатор или
> генератор скелета скриптов.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

119. Сообщение от Вы забыли заполнить поле Name (?), 28-Дек-22, 03:31   +3 +/
>и теперь я после работы сантехником и в выходные
> уже недель шесть допиливаю свою библиотеку risky (https://github.com/burjui/risky/tree/v0.4.0)
> для кодирования инструкций RISC-V (пока только RV32I + M + Zicsr):

Очень жирно


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63 Ответы: #126

120. Сообщение от Вы забыли заполнить поле Name (?), 28-Дек-22, 03:36   +/
> А теперь попробуйте это с скриптом на питоне 2.4 в современной системе повторить и чтоб не переписать минимум половину при этом.

Дичь поришь. Берешь 2.7 и запускаешь скрипт.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

121. Сообщение от EuPhobos (ok), 28-Дек-22, 08:32   +/
Да, что-то я дроби не увидел сразу, подумал чекер даёт совет считать всегда в сторонних программах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #107

122. Сообщение от Анончик (?), 28-Дек-22, 09:17   +/
Зачем вы себя мучаете этим программированием, непонятно. Есть куча других профессий и занятий по мимо ИТ.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #125

123. Сообщение от Аноним (123), 28-Дек-22, 09:23   +/
>я вообще удивляюсь как никому в голову не пришло создать такой инструмент раньше

Раньше -- это когда? Shellcheck сто лет в обед.

>то с плюсами куда сложнее.

Сложнее, и тем не менее, cppcheck, clang-check, и ещё какие-то есть.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106 Ответы: #143

124. Сообщение от Аноним (123), 28-Дек-22, 09:26   +/
Покажи код, аноним. Баш не должен фейлиться на $() никогда.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #60 Ответы: #132

125. Сообщение от burjui (ok), 28-Дек-22, 09:46   –1 +/
Зачем вы себя мучаете чтением моих комментариев, непонятно. Есть куча другого текста "по мимо" написанного мной.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122

126. Сообщение от burjui (ok), 28-Дек-22, 10:06   –1 +/
Жирно или нет, но:
1. Мне есть, что показать, чего не скажешь о местной школоте.
2. В risky покрытие кода тестами 99.55%, она быстрая и корректно работает на big-endian, в ней нет кривой работы с памятью и последняя не течёт.
3. Нормального человека мой пример может мотивировать на написание кода, и мне неважно, будет это код на Rust, С, Python или BASIC - лишь бы человек писал код и учился. А такие, как вы - одна из причин, почему люди теряют веру в человечество.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #119 Ответы: #129, #144

127. Сообщение от onanim (?), 28-Дек-22, 11:01   +/
$ cnf shellcheck
                            
The program 'shellcheck' can be found in following packages:
  * ShellCheck [ path: /usr/bin/shellcheck, repository: zypp (repo-oss) ]
  * ShellCheck [ path: /usr/bin/shellcheck, repository: zypp (openSUSE-Tumbleweed) ]

Try installing with:
    sudo zypper install ShellCheck

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

128. Сообщение от onanim (?), 28-Дек-22, 11:03   –1 +/
не знал о существовании этой тулзы, спасибо!
Ответить | Правка | Наверх | Cообщить модератору

129. Сообщение от Вы забыли заполнить поле Name (?), 28-Дек-22, 13:02   +1 +/
С каких пор джаваскритпизеры стали сантехниками?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #131

130. Сообщение от Аноним (130), 28-Дек-22, 13:14   +/
У так называемых программистов, не знающих что такое шина адреса и шлепающих формы на скриптухах для верстальщиков типа java, их нет и не может быть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

131. Сообщение от burjui (ok), 28-Дек-22, 13:54   –1 +/
Ещё один выполз... Я никогда не писал ни на JS, ни на PHP, а в Битриксе делал приложения для Android на Java и Kotlin (который там внедрял я).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #129 Ответы: #134

132. Сообщение от Аноним (60), 28-Дек-22, 14:39   +/
Да, я тоже думал проблема может быть в другом месте, но она именно тут (похоже, дело именно во вложенной ?(), но если с ней что-нибудь сделать, glob не будет работать, как надо)

line 90: syntax error near unexpected token `('

shopt -s extglob
fname=$(shopt -s failglob;shopt -s nocaseglob;echo "${fname}"/?("${BASH_REMATCH[1]}")"${BASH_REMATCH[2]}${BASH_REMATCH[3]}"$pext)
[[ 0 -ne $? ]] && echo '#glob match failed' && exitnow
shopt -u extglob

До bash-5.2 всё было норм, 0 проблем с файлами. Этот скрипт генерирует страничку для веббраузера, и в один прекрасный день он просто перестал это делать(

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #124 Ответы: #163

133. Сообщение от Аноним (133), 28-Дек-22, 15:18   +/
согласен. ошибки нужно искать не в коде, а в ДНК
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

134. Сообщение от Вы забыли заполнить поле Name (?), 28-Дек-22, 16:39   +2 +/
> Ещё один выполз... Я никогда не писал ни на JS, ни на
> PHP, а в Битриксе делал приложения для Android на Java и
> Kotlin (который там внедрял я).

Раскрою тебе секрет: разработчик под мобилки такой же формошлеп.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #131 Ответы: #142

136. Сообщение от Вы забыли заполнить поле Name (?), 28-Дек-22, 17:17   +4 +/
> Я бы рассказал шутку про C, но Й№28(%3?*№3Х{>?5ц
> Segmentation fault

Вот что бывает, когда растоман пытается пошутить в unsafe блоке.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #146

138. Сообщение от Аноним (-), 28-Дек-22, 17:32   +/
Данунафиг, антипод юниксвэя. Делает что угодно и одинаково фигово. Ведет к тому что вместо нормальных кирпичиков объединяемых вон тем - здоровенные шевелящиеся монстры с щупальцами, которые страшно трогать руками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

139. Сообщение от Ноня (?), 28-Дек-22, 18:58   +/
В удалённых.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #103

140. Сообщение от Ноня (?), 28-Дек-22, 19:01   +/
>Ну да, а у другого тут выходит видео блендером редактировать. Можете попробовать еще объяву на забор в автокаде написать, почему не пытаться? :)

Когда это блендер и автокад стали универсальными инструментами навроде шелла?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #155

141. Сообщение от Аноним (141), 28-Дек-22, 19:16   –1 +/
Такие системы называются легаси их всё меньше и меньше. Сегодня, если на операционной системе общего назначения не существует баша, это показатель её непригодности к промышленному использованию. Практика деплоев тому доказательством.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95

142. Сообщение от burjui (ok), 28-Дек-22, 19:55   +/
Раскрою тебе секрет: я не пишу под Андроид уже лет 8. И ещё один: в нём кроме UI ещё много всего. Ну да ладно, куда мне до тебя, ты же, поди, работаешь с бигдатой, ИИ, запускаешь спутники, а в перерывах пишешь компиляторы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #134 Ответы: #145

143. Сообщение от анонна (?), 28-Дек-22, 20:53   +/
способны ли они в с++ разобраться вот вопрос. там слишком много подводных камней))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123

144. Сообщение от Вы забыли заполнить поле Name (?), 28-Дек-22, 21:45   –2 +/
> в ней нет кривой работы с памятью и последняя не течёт.
> не течёт

Откуда такая уверенность?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #149

145. Сообщение от Вы забыли заполнить поле Name (?), 28-Дек-22, 21:51   –1 +/
> Раскрою тебе секрет: я не пишу под Андроид уже лет 8.

Такс. Ты вроде как хвалился тем, что писал под Андроид, что не формошлеп, а теперь пошли оправдания "не пишу уже 8 лет".

> И ещё один: в нём кроме UI ещё много всего.

Не поверишь, но джаваскриптизеры также говорят.

> Ну да ладно, куда мне до тебя, ты же, поди, работаешь с бигдатой, ИИ, запускаешь спутники, а в перерывах пишешь компиляторы.

Во всех вышеупомянутых областях используется С, С++, Python, которые ты так ненавидишь. Ой. Получается ты приводишь в пример то, что ненавидишь. Как же так?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #142

146. Сообщение от burjui (ok), 28-Дек-22, 21:52   –4 +/
Ой-ой-ой, синяки обиделись и накидали минусов, а теперь ещё и вяло петросянят об этом, я расстроен до глубины ноздри. По твоей логике, вы сами-то даже думаете в одном большом unsafe блоке, что объясняет качество ваших антирастовых шуток: гага в расте стек переполнен (сказал пользователь языка, популяризовавшего термин stack overflow, лол), гага растоманы (шутки про наркотики всегда актуальны среди зрителей Камеди кала).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #136 Ответы: #147

147. Сообщение от Вы забыли заполнить поле Name (?), 28-Дек-22, 21:57   +/
> Ой-ой-ой, синяки обиделись и накидали минусов, а теперь ещё и вяло петросянят
> об этом, я расстроен до глубины ноздри. По твоей логике, вы
> сами-то даже думаете в одном большом unsafe блоке, что объясняет качество
> ваших антирастовых шуток: гага в расте стек переполнен (сказал пользователь языка,
> популяризовавшего термин stack overflow, лол), гага растоманы (шутки про наркотики всегда
> актуальны среди зрителей Камеди кала).

У тебя мусор в голове. Просто нормальные люди видят плюсы и минусы, а ты только плюсы или только минусы.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #146 Ответы: #150

149. Сообщение от burjui (ok), 28-Дек-22, 22:14   +/
Во-первых, оттуда, что я не писал такой код, в котором даже теоретически может течь. Во-вторых, valgrind. А в-третьих, я научился у местной сишной интеллигенции одному хитрому трюку: делаешь умное лицо и сразу просто знаешь, что твой код лучше, а все, кто не согласен - быдло.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #144 Ответы: #152

150. Сообщение от burjui (ok), 28-Дек-22, 22:19   –1 +/
То есть, ты сейчас подтвердил, что 90% комментаторов про Rust - ненормальные, потому что видят в нём одни минусы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #147 Ответы: #151

151. Сообщение от Вы забыли заполнить поле Name (?), 28-Дек-22, 22:32   +/
> То есть, ты сейчас подтвердил, что 90% комментаторов про Rust - ненормальные,
> потому что видят в нём одни минусы.

Я же говорю у тебя мусор в голове. Ты видишь, что хочешь видеть.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #150 Ответы: #154

152. Сообщение от Вы забыли заполнить поле Name (?), 28-Дек-22, 22:41   +/
> Во-первых, оттуда, что я не писал такой код, в котором даже теоретически может течь.

А доказательско теории где можно посмотреть?

> Во-вторых, valgrind.

Тестирование программ может оказать наличие ошибок, но никогда не покажет их отсутствие. (с) Дейкстра

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149 Ответы: #153

153. Сообщение от burjui (ok), 28-Дек-22, 23:43   –1 +/
> А доказательско теории где можно посмотреть?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #152 Ответы: #157

154. Сообщение от burjui (ok), 28-Дек-22, 23:44   –4 +/
Ты вообще много говоришь. Иди код пиши лучше, балабол.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #151 Ответы: #156

155. Сообщение от Аноним (-), 28-Дек-22, 23:57   +/
> Когда это блендер и автокад стали универсальными инструментами навроде шелла?

Я бы не стал настаивать что он вот именно универсальный.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140 Ответы: #181

156. Сообщение от Вы забыли заполнить поле Name (?), 29-Дек-22, 01:16   +1 +/
> Ты вообще много говоришь. Иди код пиши лучше, балабол.

Этот растаман порвался, несите следующего

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #154

157. Сообщение от Вы забыли заполнить поле Name (?), 29-Дек-22, 01:24   +1 +/
> Динамическое выделение памяти не используется, течь не может в принципе.

Что растоманы подразумевают под динамическим выделением?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153 Ответы: #158

158. Сообщение от burjui (ok), 29-Дек-22, 01:31   –2 +/
То же, что и синяки. Есть такой классный сервис для поиска информации по фразам, называется Google, очень рекомендую. Я понимаю, что любые высказывания "растоманов" здесь принимаются в штыки, независимо от смысловой нагрузки, но сервис действительно хорош, и его используют миллиарды людей во всём мире. Например, среди первых результатов есть ссылка на статью в Wikipedia. Это, кстати, ещё один замечательный сервис, база знаний. Там можно узнать много интересного про компьютеры.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #157 Ответы: #159

159. Сообщение от Вы забыли заполнить поле Name (?), 29-Дек-22, 01:35   +/
> То же, что и синяки. Есть такой классный сервис для поиска информации
> по фразам, называется Google, очень рекомендую. Я понимаю, что любые высказывания
> "растоманов" здесь принимаются в штыки, независимо от смысловой нагрузки, но сервис
> действительно хорош, и его используют миллиарды людей во всём мире. Например,
> среди первых результатов есть ссылка на статью в Wikipedia. Это, кстати,
> ещё один замечательный сервис, база знаний. Там можно узнать много интересного
> про компьютеры.

Вижу ты совершенно не понимаешь, что происходит у тебя в коде.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #158 Ответы: #160, #161

160. Сообщение от burjui (ok), 29-Дек-22, 02:31   –1 +/
А ты понимаешь, что происходит у меня в коде? Как насчёт челленджа: найти утечку памяти в risky v0.4.0. Разумеется, я шучу, потому что:
1. Я не настолько мизантроп, чтобы просить кого-то искать утечки памяти там, где их быть не может по определению, в 6600 строках кода.
2. Всё равно никто здесь на это не решится по разным причинам:
- Нет желания
- Нет времени
- Нет компетенции
- Нет даже базового знания Rust
- Да просто потому что иди нахрен

Ладно, без шуток, теперь аргументируй, в чём я неправ насчёт утечек памяти и динамического её выделения. Я - человек не гордый, умею признавать ошибки (как это было с занулением указателей через calloc в каком-то треде).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159

161. Сообщение от Прохожий (??), 29-Дек-22, 09:10   –1 +/
Он прекрасно понимает, думаю. А вот ты базовой терминологией не владеешь, что, впрочем, для местного "эксперта" неудивительно. Ты, кстати, так и не ответил, с чем работаешь и в какой области. Ни одного проекта не привёл в ответ. Что весьма и весьма хорошо характеризует тебя.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159 Ответы: #167

162. Сообщение от Прохожий (??), 29-Дек-22, 09:43   –1 +/
>Годный синтаксис у обычного шелла

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

>что надо умещает получше любого питона

Нихрена обычный шелл толком не умеет, особенно без утилит, типа awk, grep, sed, find, tr, basename, dirname и прочих.
У каждой такой утилиты, понятное дело, свой мозговыносящий синтаксис,что тоже никак не добавляет читабельности программ на шелле.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69 Ответы: #171

163. Сообщение от швондер (?), 29-Дек-22, 12:02   +/
>[оверквотинг удален]
> именно тут (похоже, дело именно во вложенной ?(), но если с
> ней что-нибудь сделать, glob не будет работать, как надо)
> line 90: syntax error near unexpected token `('
> shopt -s extglob
> fname=$(shopt -s failglob;shopt -s nocaseglob;echo "${fname}"/?("${BASH_REMATCH[1]}")"${BASH_REMATCH[2]}${BASH_REMATCH[3]}"$pext)
> [[ 0 -ne $? ]] && echo '#glob match failed' && exitnow
> shopt -u extglob
> До bash-5.2 всё было норм, 0 проблем с файлами. Этот скрипт генерирует
> страничку для веббраузера, и в один прекрасный день он просто перестал
> это делать(

У меня ваш код работает ожидаемо в GNU bash, версия 5.1.16(1)-release (x86_64-pc-linux-gnu)

в 5.1 эта ошибка синтаксиса вылетает, если extglob не задавать, "?()" будет некорректным. Ваш пример загрязнен BASH_REMATCH и прочими неимеющими отношения к вопросу деталями. это затрудняет диагностику.
Могу предположить, что если у вас вылетает не описанная вами ошибка про line 90, но просто не находится файл, то беда в том, что нет матча на содержимое ?(), при failglob будет ошибка матчинга. То есть, вы указали что мол вам и не нужно то, что в скобках, но это все равно будет fail globbing.
В генте 5.2 ещё маскирован, как обновится - проверю ещё раз ваш кейз. Должен работать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #132 Ответы: #164, #165

164. Сообщение от Аноним (60), 29-Дек-22, 12:31   +/
Нет, баш в генте 5.2 в тестовой ветке, не замаскирован. Я уже говорил, что в синтетическом примере не проявляется, поэтому нет смысла. Это была копия проблемного кода и я отдельно убедился, что дело именно в нём. Баш вообще не пытается исполнить этот файл, поэтому переменные никакого значения не имеют.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163 Ответы: #173

165. Сообщение от Аноним (60), 29-Дек-22, 12:35   +/
Кстати local pext='@(*.mkv|*.mp4|*.avi)' поэтому да, extglob.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163 Ответы: #172

167. Сообщение от Вы забыли заполнить поле Name (?), 29-Дек-22, 14:26   +/
> Он прекрасно понимает, думаю.

Он прекрасно показал, что не понимает ничего. Еще и сдеанонился.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #161

169. Сообщение от burjui (ok), 29-Дек-22, 15:00   –2 +/
> Растоман общается как недоразвитый подросток

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

> дальше можешь не стараться.

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

Ты второй за всё время, кого я добавлю в игнор. И я на 100% уверен, что ты будешь гордиться этим, будто неким достижением: мол, гагага, затралил растомана. Молодец, возьми с полки пирожок и дальше смотри мультики под пиво и играй в майнкрафт, или чем там занимаются школьники в свободное время, кроме троллинга на опеннете.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #170

170. Сообщение от Аноним (170), 29-Дек-22, 16:22   +1 +/
>[оверквотинг удален]
> я веду диалог... просто невыносимый уровень тугости.
>> дальше можешь не стараться.
> Ай молодец, отмазался. Я и не сомневался, что ты только в лужу
> пердеть можешь, а код даже читать не умеешь и, скорее всего,
> его даже боишься, потому что он заставляет думать.
> Ты второй за всё время, кого я добавлю в игнор. И я
> на 100% уверен, что ты будешь гордиться этим, будто неким достижением:
> мол, гагага, затралил растомана. Молодец, возьми с полки пирожок и дальше
> смотри мультики под пиво и играй в майнкрафт, или чем там
> занимаются школьники в свободное время, кроме троллинга на опеннете.

Ахахаха. Забанил анонима. Если ты такая истеричка, то лучше вообще сюда не заходи.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169

171. Сообщение от Аноним (171), 30-Дек-22, 23:02   +/
Хорошего здесь то что с таким синтаксисом ты можешь делать присвоение прямо в команде:
foo=123 proga

Если разрешить пробелы при присвоении будет неоднозначность.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #162

172. Сообщение от швондер (?), 31-Дек-22, 17:23   +/
так у вас какая именно ошибка? Вижу две в вашем сообщении
1. некорректный синтаксис line 90  -это очень похоже на отключенный extglob
2. файл не находится
Если 2 это следствие №1, то это одна ситуация. Если №2 на одном и том же наборе файлов и минимальном пруфе работает по разному на разных версиях баша  - это надо репортить.
Давайте запилим минимальный пруфик бага?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #165 Ответы: #174

173. Сообщение от швондер (?), 31-Дек-22, 17:27   +/
> Нет, баш в генте 5.2 в тестовой ветке, не замаскирован. Я уже
> говорил, что в синтетическом примере не проявляется, поэтому нет смысла. Это
> была копия проблемного кода и я отдельно убедился, что дело именно
> в нём. Баш вообще не пытается исполнить этот файл, поэтому переменные
> никакого значения не имеют.

не поленился, собрал локально 5.2 в хомовике, сделал минимальный сампл на базе вашего кода, накидал файликов под матч ?() - вижу пока одно и то же поведение как с системным 5.1, так и с bash-5.2/bash.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #164

174. Сообщение от Аноним (60), 31-Дек-22, 21:11   +/
Файл находится в 5.1 и не находится в 5.2? И при чём тут файл, если баш не пытается выполнять этот код, который ему не нравится? В этом у баша большая проблема, если ему что-то не нравится, приходится играть в угадайку. Технически этот код подстановки заранее неизвестного имени даже не использовался, потому что скрипту надо передать каталог вместо файла и это никогда так и не использовалось. Но, я уверен, что он корректный и всё работает, как и ожидалось, специально это проверил. Тут большая проблема, что extglob не работает корректно с @ в имени. Просто внезапно баш после обновления решил, что надо использовать обратные кавычки тут. Выглядит 100% как баг, или регрессия.

Вот полный пример кода, в котором $() не работает, но кавычки работают как и с 5.1.

#!/bin/env bash

process_dirname(){
    local pext='@(*.mkv|*.mp4|*.avi)'
    shopt -s extglob
    fname=$(shopt -s failglob;shopt -s nocaseglob;echo "${fname}"/?("123")"qwe"$pext)
    [[ 0 -ne $? ]] && echo '#glob match failed' && exit 1
    shopt -u extglob

    if [[ ! -f "${fname}" ]];then
        echo "new filename ${fname@Q} couldn't be located, didn't guess the filename correctly"
        exit 1
    fi
    echo "# filename for ${file@Q} changed to ${fname@Q}"
}

file="$@"
[[ -n "${file}" ]] || { echo -e "Usage:\t$0 FILENAME"; exit 1; }

fname="${file##*/}"
fpath="${file%/*}"
[[ -d "${fname}" ]] && process_dirname

Ещё раз, дело именно в синтаксической ошибке от $(?()) и не в чём-либо ещё.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #172 Ответы: #175

175. Сообщение от швондер (?), 01-Янв-23, 12:23   +/
>[оверквотинг удален]
>     echo "# filename for ${file@Q} changed to ${fname@Q}"
> }
> file="$@"
> [[ -n "${file}" ]] || { echo -e "Usage:\t$0 FILENAME"; exit 1;
> }
> fname="${file##*/}"
> fpath="${file%/*}"
> [[ -d "${fname}" ]] && process_dirname
> Ещё раз, дело именно в синтаксической ошибке от $(?()) и не в
> чём-либо ещё.

вы не поверите, но этот код зависит от файлов, которые находятся - или не находятся. Предлагаю собрать локально 5.2 и 5.1, и убедиться, что оба интерпретатора работают идентично, вызывая прямо ~/src/bash-5.1/bash ./script.sh и ~/src/bash-5.2/bash ./script.sh
Трюк с VAR=$(echo $VAR) это фактически аналог разыменовывания указателя, получения конкретного значения переменной, вместо вычисления переменной каждый раз. Именно для него вам понадобились здесь shopt. В тонком месте и порвалось, ни одно кодеревью этот код не прошел бы; но всё-таки, врядли дело в версии баш. прошу проверить через выполнение именно разными версиями, установленными локально. С новым годом!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #174 Ответы: #176

176. Сообщение от Аноним (60), 01-Янв-23, 13:14   +/
Этот код ни от чего не зависит, если он не интерпретируется. Не понимаю, что тонкого в ?(), если extglob -- это штатная функциональность баша? Я уже уже собирал баш 5.0_p18 и 5.1_p16-r2 -- в них нет ошибки синтаксиса, которая возникла сразу после размаскировки 5.2_p15 пару месяцев назад. Более ранние рассматривать нет смысла, в остальном коде присутствует максимально много башизмов, потому что только они позволяют писать профессиональный и устойчивый к ошибкам и уязвимостям код без лишних зависимостей (у которых будут свои особенности опять же). Конкретно приведённый код демонстрирует эту ошибку в 5.2_p15, её там быть не должно, либо $() вообще нельзя использовать нигде и никак.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #175 Ответы: #177

177. Сообщение от швондер (?), 01-Янв-23, 14:49   +/
> Этот код ни от чего не зависит, если он не интерпретируется. Не
> понимаю, что тонкого в ?(), если extglob -- это штатная функциональность
> баша? Я уже уже собирал баш 5.0_p18 и 5.1_p16-r2 -- в
> них нет ошибки синтаксиса, которая возникла сразу после размаскировки 5.2_p15 пару
> месяцев назад. Более ранние рассматривать нет смысла, в остальном коде присутствует
> максимально много башизмов, потому что только они позволяют писать профессиональный и
> устойчивый к ошибкам и уязвимостям код без лишних зависимостей (у которых
> будут свои особенности опять же). Конкретно приведённый код демонстрирует эту ошибку
> в 5.2_p15, её там быть не должно, либо $() вообще нельзя
> использовать нигде и никак.

пруф должен выглядеть так:
mkdir test
cd test
mkdir dir
touch dir/{имена_файлов_под_матч}
~/src/bash-5.1/bash ~/src/script  - работает
~/src/bash-5.2/bash ~/src/script  - не работает


пока этого нет - говорить о регрессе бессмысленно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #176 Ответы: #178

178. Сообщение от Аноним (60), 01-Янв-23, 15:19   +/
Зачем мне это? Я накатил старые версии интерпретатора, которые есть в репах, и убедился, что у них всё нормально. Этого более чем достаточно. Но ладно

https://ftp.gnu.org/gnu/bash/bash-5.2.15.tar.gz

~ $ ./configure
~ $ make
~ $ ./bash -x ~/bin/bashextglob.sh 123
~/bin/bashextglob.sh: line 6: syntax error near unexpected token `('
~/bin/bashextglob.sh: line 6: `    fname=$(shopt -s failglob;shopt -s nocaseglob;echo "${fname}"/?("123")"qwe"$pext)'

ожидаемый результат выглядит вот так

~ $ bash -x ~/bin/shitsniffer3.sh 123
+ file=123
+ [[ -n 123 ]]
+ fname=123
+ fpath=123
+ [[ -d 123 ]]

Сколько раз надо повторить, что дело не в файлах? Это уже 10 вроде.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #177 Ответы: #179

179. Сообщение от швондер (?), 01-Янв-23, 18:29   +/
>[оверквотинг удален]
> "${fname}"/?("123")"qwe"$pext)'
> ожидаемый результат выглядит вот так
> ~ $ bash -x ~/bin/shitsniffer3.sh 123
> + file=123
> + [[ -n 123 ]]
> + fname=123
> + fpath=123
> + [[ -d 123 ]]
> Сколько раз надо повторить, что дело не в файлах? Это уже 10
> вроде.

так у вас разные скрипты вызываются?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178 Ответы: #180

180. Сообщение от Аноним (60), 01-Янв-23, 18:36   +/
Нет, это один файл. Я же написал, как повторить (когда я пытался воспроизвести на минимальном примере в прошлый раз, почему-то не получилось).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #179

181. Сообщение от Ноня (?), 01-Янв-23, 22:42   +/
>Я бы не стал настаивать что он вот именно универсальный.

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

>Конкретный пример: написать HTTP сервер на шелле ну не то чтобы вообще совсем нельзя, но, поверьте, это крайне паршивая идея.

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

Ето если про werc ещё не вспоминать, правда вот шелл там уже немножечко другой, но суть одна.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #155

182. Сообщение от freehckemail (ok), 02-Янв-23, 16:45   +/
> и как ты на башпортянках реализуешь асинхронщину и параллельный взаимозависимый запуск служб?

Ну так пойди и посмотри, как оно в Debian было сделано. И стартовало, между прочим, быстрее, чем стало после внедрения systemd.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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