Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


вторник, 4 октября 2022 г.

Рисование текстовых рамок в bash, часть 2

 В августе 2021 я уже писал на эту тему. Но потом мне захотелось прекрасного и недавно я доработал алгоритм, сведя его в отдельную процедуру и дополнив некоторыми возможностями.

Красиво оформлено через pastebin


Вот как выглядит результат работы этого скрипта

Функция border() принимает 2 аргумента. Первый, обязательный, текст для вывода внутри рамки. Второй, не обязательный, выбор типа рамки. Сейчас воспринимаются только два модификатора: g - graphical, и d - double, соответственно обычная и двойная псевдографические рамки.

По сути, модификатор просто определяет набор знаков, используемых для рисования. Всего имеется 8 компонентов рамки: 4 угла и 4 "стенки" - 2 вертикальных (левая/правая) и 2 горизонтальных (верхняя/нижняя). Меняя символы в этих наборах, можно без проблем рисовать рамки из любых символов.

Забавно, что символ "одиночная псевдографическая горизонталь" (переменные BTM и BBM в наборе "g", \Ux2500, если не ошибаюсь) я никак не мог ввести в консоли. Не помогала даже вставка из "таблицы символов". 


Под катом - не раскрашенный текст скрипта на случай, если pastebin перестанет работать.

dmesg и sudo в новых Ubuntu

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

Начинает раздражать, что некогда простая и ясная система всё больше напоминает Windows по своей запертости, когда "под капотом" прячется всё и вся без возможности увидеть то, что решил не показывать разработчик GUI.

Вот и теперь решение есть и очень простое. Но, скажите мне, как про него догадаться? Я не понимаю.

sudo sysctl -w kernel.dmesg_restrict=0