Безопасность eval

и еще раз к вопросу о пользе чтения man-ов

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

оно то так, но есть в bash одна очень приятная штука для борьбы с этим злом — расширитель @. позволяет экранировать всякую каку без особых извратов с echo/sed/perl/whatever

Читать далее «Безопасность eval»

Временные метки при логировании

захотелось странного — меток времени в .xsession-errors. обычно этот файлик создается простым редиректом всего выхлопа через exec > blah-blah 2>&1. а далее в ход идет bash-евская магия с сопроцессами. в результате команда приобрела следующий вид

exec > >(while read ln ; do echo "[$(date)] : $ln" >> "${TMPDIR:-/tmp}/xsession-errors.$USER" ; done) 2>&1

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

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

FVWM и буфер обмена

В связи с переходом на gtk3 встал вопрос о менеджере буфера обмена. Всякие parcellite и клоны, мягко говоря, дерьмецо. Заточены в основном под gtk2. Да и хренова туча всякой дополнительной лабуды в них мне и в хер не уперлась. Пришлось воротить что-то свое. В принципе, все, что мне нужно — это хранить некую не очень большую историю и иметь возможность выбрать нужный кусок.

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

Читать далее «FVWM и буфер обмена»