Рисуем блок схемы в консоли

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Ответить
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Рисуем блок схемы в консоли

Сообщение olecya »

Зашел разговор о плагине для зарисовки блок схем под вим здесь drawIt . И я вспомнила как недавно помогала индусу отрисовывать на консоль что то подобное. Кстати, скрипт тогда я тоже назвала drawit. Хочу поделится и может кто заинтересуется. Индус понимал по английски лучше меня но вместе у нас получилась примерно как здесь Камеди-На американском радио. Ему я это в конечном счете тоже показала :) но так до конца и не поняла всю глубину логики которую влаживал в вопрос оппонент и вот то что я легенькое накидала.

Код: Выделить всё

#!/bin/bash
frame() {
        echo "+-${1//$'\r'/-+    +-}-+"
        echo "| $2 |" | column -to' |--> | ' -s$'\r'
        echo "+-${1//$'\r'/-+    +-}-+"
}
IFS=$'\r';
frame "${*//?/-}" "$*"
Запускаем как-то так:

Shell

./drawit 192.168.122.{1..5}
+---------------+ +---------------+ +---------------+ +---------------+ +---------------+
| 192.168.122.1 |--> | 192.168.122.2 |--> | 192.168.122.3 |--> | 192.168.122.4 |--> | 192.168.122.5 |
+---------------+ +---------------+ +---------------+ +---------------+ +---------------+
Можно переадресовать в файл. Вообщем. Можно прикинутся индусом и напридумывать сложных фирулей если кто скучает.
Да. Если нужны пробелы в словах блока необходимо заключать их в кавычки или экранировать сам пробел

Shell

./drawit {a..c}\ {1..3}
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+
| a 1 |--> | a 2 |--> | a 3 |--> | b 1 |--> | b 2 |--> | b 3 |--> | c 1 |--> | c 2 |--> | c 3 |
+-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+ +-----+
Последний раз редактировалось olecya 02.09.2020 09:55, всего редактировалось 3 раза.
Спасибо сказали:
Аватара пользователя
SerW
Сообщения: 402
ОС: macOS& Fedora Workstation Latest
Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение SerW »

Огого!
Сергей Ш. » DragonSerW.RU
Спасибо сказали:
gabix
Сообщения: 352
ОС: openSUSE Leap 15.4

Re: Рисуем блок схемы в консоли

Сообщение gabix »

Как для меня — вообще круть запредельная :-)
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение devilr »

Кстати, всегда интересовало, а почему в таких поделках рисуют всякими плюсами/минусами, а не символами псевдографики? Они ведь в той же таблице находятся.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: Рисуем блок схемы в консоли

Сообщение olecya »

SerW писал:
22.12.2020 23:19
Огого!
Очень информативно, не боитесь, что могут расценить такое как спам? :)
devilr писал(а):
23.12.2020 10:10
почему в таких поделках рисуют всякими плюсами/минусами
Так плюс это идеальный элемент сопряжения.
devilr писал(а):
23.12.2020 10:10
Они ведь в той же таблице находятся.
А что за таблица? Есть продвинутые диграфы :dig :)
Чуть не написала глифы.
dig.png
Бывает пользую когда нужно в латинице ударение поставить
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение devilr »

Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 900
ОС: debian, fedora (i3-wm)

Re: Рисуем блок схемы в консоли

Сообщение olecya »

@devilr. Вижу в таблице первые три символа по которым уже есть соображения. Спасибо, отлучусь не на долго
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение devilr »

Просто, я уже много раз видел подобные "рисунки" в официальной документации всяких контор. И они все упорно не хотят применять псевдографику, хотя она совершенно прекрасно отображается хоть на древних терминалах, хоть на печати. Непонятно, почему...
P.S. "ненадолго" в этом контексте пишется слитно. Ваш граммар-наци. :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
gabix
Сообщения: 352
ОС: openSUSE Leap 15.4

Re: Рисуем блок схемы в консоли

Сообщение gabix »

devilr писал(а):
23.12.2020 11:28
Просто, я уже много раз видел подобные "рисунки" в официальной документации всяких контор.

Ваш граммар-наци. :)
Запятая в первом предложении лишняя. Да и нормальные кавычки типа «» нелишне поставить бы.

Дружеский привет от Komma Klan.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Рисуем блок схемы в консоли

Сообщение Bizdelnick »

devilr писал(а):
23.12.2020 10:10
Кстати, всегда интересовало, а почему в таких поделках рисуют всякими плюсами/минусами, а не символами псевдографики? Они ведь в той же таблице находятся.
В таблице ASCII их нет, всё остальное может быть недоступно в зависимости от локали.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
gabix
Сообщения: 352
ОС: openSUSE Leap 15.4

Re: Рисуем блок схемы в консоли

Сообщение gabix »

Так локали теперь всё больше на UTF-8 основываются, а значит псевдографика должна быть доступна почти всем.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение devilr »

Bizdelnick писал:
23.12.2020 12:32
В таблице ASCII их нет
А про какую именно таблицу вы говорите? Вроде, во второй половине, они всегда были... в Extended ASCII
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Рисуем блок схемы в консоли

Сообщение Bizdelnick »

devilr писал(а):
23.12.2020 12:37
А про какую именно таблицу вы говорите? Вроде, во второй половине, они всегда были... в Extended ASCII
В какой именно из Extended ASCII? Вторая половина в них всех разная.

export LC_ALL=ru_RU.KOI8-R
Удачи в выводе псевдографики. ☺
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение devilr »

Bizdelnick писал:
23.12.2020 12:43
Удачи в выводе псевдографики.
Если выбрать иврит, то наверняка не будет. :) Впрочем, может и так, что не у всех эти символы есть... я с этими таблицами больше на микроконтроллерах и китайских LCD - дисплеях встречался.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Рисуем блок схемы в консоли

Сообщение Bizdelnick »

Хотя я ошибся, в KOI8-R как раз есть псевдографика. Но даже в KOI8-U она частично выброшена. А в Latin-1, например, её нет.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Рисуем блок схемы в консоли

Сообщение Hephaestus »

devilr писал(а):
23.12.2020 11:28
И они все упорно не хотят применять псевдографику, хотя она совершенно прекрасно отображается хоть на древних терминалах, хоть на печати.
Псевдографика в момент заменяется на "плюсы", "минусы", буквы "T" и "L", стоит только открыть исходник без без явного указания кодировки. Например, набросали рамочки в каком-нибудь встроенном редакторе NortonCommander - всё красиво.
А потом открыли, например, в vim. Всё - псевдографика вся разлетелась - заменилась на плюсы, минусы и пр.
Причем, заменяется автоматом, без всякого спроса.
За все редакторы не скажу, но с vim это было точно.
Чтобы этого не случилось, нужно либо псевдографику указывать кодами символов (что неудобно), либо файл не открывать в сторонних редакторах без указания кодировки.
Так эти люди, которые "не хотят использовать псевдографику" - они просто предпочитают plain text, что вполне оправдано.
Это я про исходники программ, которые рамочки выводят на экран.

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