> А можно про _километровый_ поподробнее?Я окинул взглядом этот код и осознал что простыни такого размера на шеллскриптах - не воспринимаю. На мой вкус шеллскрипты годятся для небольшой системной автоматизации и не более того.
> Да и со строками работать -- одна радость,
По крайней мере, там нет траха мозга с эскейпингом и прочими "прелестями" в плане специальной трактовки хитрозагнутых входных данных. Массив байтов и есть массив байтов. Специально обрабатывается только 1 байт - нулевой. И даже на него легко забить, если надо.
> не говоря уж про удобство поэтапной обработки сложных данных.
Обрабатывать какие-то внешние данные в шеллскриптах - лучше сразу застрелиться. Вон рядом колоритный пример в новостях висит чего получается если баш необдуманно кормить входными данными. ЧСХ грабель такого плана с шеллскриптами - хоть отбавляй, оно никогда не делалось под untrusted input. Так что процессить какие-то произвольные внешние данные ЭТМИ - очень граблеопасная затея, требующая загадить свой мозг кучей интимных особенностей сильнее любых сей.
> а тут какой-то явно другой аноним порет чушь про удобство решения
> всего и вся на макроассемблере. Хорошо бы их познакомить и
> посмотреть дискуссию, да.
Как бы изначально шеллскрипты были задуманы как glue между сишными программами. А либа на шелле - стало быть, rampant layering violation уже.
> Ну надо же. Мне http://git.altlinux.org/gears/c/chrooted.git?p=chrooted.git;...
> развидеть или как?
Спасибо, поблевал. Действительно, "сделайте меня развидеть это". Кстати, для нелюбителей systemd - еще один образчик милого приятного кода на шеллскриптах:
237 Copy $verbose $force -m644 "/var/yp/binding/$d.2" "var/yp/binding/$d.2" ||:
А что такое /var/yp/binding/* и почему оно захардкожено где-то аж на третьей странице, в 237-й строке? Или вы решили показать пример того как делать не надо? :)
> Может, всё-таки у некоторых есть морковки послаще убунты? (да, лучше учить софт лезть в чрут и бросать привилегии,
> но и сложнее -- обычно это подразумевает обучение апстрима)
Мне дописать 3 сискола в сишный сорц явно проще чем изучать что делает тот кус гомнокода на шеллскриптах, thanks. Кстати с мало-мальски современными ядрами вместо chroot актуальнее clone() с флагами на отпиливание namespaces. Но я не очень в курсе как вы это на шелле будете изображать.