Используем символы псевдографики

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

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

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

Используем символы псевдографики

Сообщение olecya »

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

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

#!/bin/bash
trap "echo -e '\e[G\e[14C\e[1;31mFAILURE\e[0m'; tput cnorm; exit" SIGINT

tput civis
echo download:
for i in ░ ▒ ▓; do
        m=0 
        for _ in {1..34}; do
                echo -en "\e[35C$((k++))%\e[G"
                echo -en "\e[${m}C$i\e[G"
                sleep .1
                ((m++))
                [ $k -eq 101 ] && break
        done
done
echo -en "\e[${m}C$i\e[G"
echo -e "\e[14C\e[1;32mSUCCESS\e[0m"
tput cnorm
Для работы с курсором воспользовалась вначале инструментом tput. Но потом переписала с эскейп последовательностями, так получилось компактней. Но все равно в этом варианте мне не нравится выход через брейк. Пока так.
Если элементы псевдографики не отобразятся правильно, то это первые три из таблицы: wiki Псевдографика или так:

Shell

echo -e '\U2591 \U2592 \U2593'
graf.png
graf.png (12.29 КБ) 1587 просмотров
Допустила ошибку, исправила

Доработанный вариант:
Spoiler

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

#!/bin/bash
trap "echo -e '\e[G\e[13C\e[31mFAILURE\e[0m\e[?25h'; exit" SIGINT
echo -e "\e[?25ldownload:"
for i in ░ ▒ ▓; do
        for m in {0..32}; do
                echo -en "\e[$((m++))C$i\e[G\e[35C$((++k))%\e[G"
                sleep .1
        done
done
echo -e "\e[34C$((++k))%\e[25D\e[32mSUCCESS\e[0m\e[?25h"
Можно было бы проще, определить переменной k начальное значение 1, но я вынесла в дополнительную строку чтобы порог с 99% до 100% сдвигался влево для более плавного восприятия.
Последний раз редактировалось olecya 25.12.2020 23:22, всего редактировалось 5 раз.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Используем символы псевдографики

Сообщение Bizdelnick »

olecya писала:
23.12.2020 14:41
переписала с эскейп последовательностями, так получилось компактней
Это пока не окажется, что эскейп-последовательности в разных терминалах работают по-разному.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Используем символы псевдографики

Сообщение MiK13 »

Bizdelnick писал:
23.12.2020 15:10
olecya писала:
23.12.2020 14:41
переписала с эскейп последовательностями, так получилось компактней
Это пока не окажется, что эскейп-последовательности в разных терминалах работают по-разному.
А где можно узнать, какие терминалы поддерживает Linux и какие в них Esc-последовательности?
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 901
ОС: debian, fedora (i3-wm)

Re: Используем символы псевдографики

Сообщение olecya »

Можно в системе

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

man console_codes
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Используем символы псевдографики

Сообщение Bizdelnick »

MiK13 писал:
23.12.2020 16:33
А где можно узнать, какие терминалы поддерживает Linux и какие в них Esc-последовательности?
https://invisible-island.net/datafiles/current/terminfo.src.gz
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Используем символы псевдографики

Сообщение Bizdelnick »

olecya писала:
23.12.2020 16:41
Можно в системе

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

man console_codes
Это только для одной отдельно взятой консоли Linux.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
olecya
Сообщения: 901
ОС: debian, fedora (i3-wm)

Re: Используем символы псевдографики

Сообщение olecya »

Возьмем сразу определение ескейп последовательности:

Shell

LESS=+/0x1B man console_codes
Если у нас одинаковые справки, то должна открыться страничка на нужном месте.
Что в переводе на язык echo, например означает такие способы задания:

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

echo -e '\x1b['
echo -e '\033['
echo -e '\e['
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Используем символы псевдографики

Сообщение MiK13 »

olecya писала:
23.12.2020 16:41
Можно в системе

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

man console_codes
Bizdelnick писал:
23.12.2020 16:53
MiK13 писал:
23.12.2020 16:33
А где можно узнать, какие терминалы поддерживает Linux и какие в них Esc-последовательности?
https://invisible-island.net/datafiles/current/terminfo.src.gz
Спасибо, поизучаю.

А в terminfo.src, оказывается, даже VT-52 есть, с которым мне немало пришлось работать :)
Правда, советские аналоги VT-52 не все Esc-последовательности поддерживали :(
Спасибо сказали:
Аватара пользователя
SergeyIT
Сообщения: 71
ОС: xUbuntu

Re: Используем символы псевдографики

Сообщение SergeyIT »

MiK13 писал:
23.12.2020 17:20
Правда, советские аналоги VT-52 не все Esc-последовательности поддерживали
Да уж... напомнил. Нашел в архиве редактор, аналог k52, который сам написал из-за этой несовместимости...
Но тогда выбора у нас не было, приходилось выкручиваться. А вот сейчас заниматься этими консольными извращениями как-то непонятно зачем...
Извините, я все еще учусь
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Используем символы псевдографики

Сообщение MiK13 »

SergeyIT писал:
23.12.2020 18:56
MiK13 писал:
23.12.2020 17:20
Правда, советские аналоги VT-52 не все Esc-последовательности поддерживали
Да уж... напомнил. Нашел в архиве редактор, аналог k52, который сам написал из-за этой несовместимости...
Но тогда выбора у нас не было, приходилось выкручиваться. А вот сейчас заниматься этими консольными извращениями как-то непонятно зачем...
Я когда-то тоже писал. Точнее, дорабатывал чей-то, чтобы использовать на советских терминалах. Ещё на советских аналогах PDP-11.
Причём, несовместимость была небольшая. Насколько помню, это была установка курсора в определённую позицию экрана -- если номер строки был больше размера экрана, то должна была оставаться текущая строка, а на терминалах курсор прыгал в последнюю.
И ещё: комбинация "\eI" работала также, как "\eA", то есть перемещала курсов вверх. Но в VT-52 она должна была в верхней строке опускать весь экран, а в советских этого не было. Хотя, по-моему, во фразинских (15-ИЭ-00-013) был просто скроллинг вниз.
Спасибо сказали:
Аватара пользователя
SergeyIT
Сообщения: 71
ОС: xUbuntu

Re: Используем символы псевдографики

Сообщение SergeyIT »

MiK13 писал:
23.12.2020 19:41
Насколько помню...
Я таких подробностей не помню... но у меня было 4 модификации редактора для разных дисплеев - 2 винницких, фрязинский и кцгд ДВК-4...
Причем 1-ый винницкий вообще далек от vt-52 был. На нем и написал 1 редактор на фортране (в ed редакторе), потом переписал в MACRO-11.
Извините, я все еще учусь
Спасибо сказали:
MiK13
Сообщения: 1180
ОС: Linux Debian

Re: Используем символы псевдографики

Сообщение MiK13 »

SergeyIT писал:
23.12.2020 20:11
у меня было 4 модификации редактора для разных дисплеев - 2 винницких, фрязинский и кцгд ДВК-4...
Причем 1-ый винницкий вообще далек от vt-52 был. На нем и написал 1 редактор на фортране (в ed редакторе), потом переписал в MACRO-11.
Помню, что сначала у нас был (ЕМНИП) ВТА-2000, про который нельзя сказать, что он "далёк от VT-52, так как не имел с ним ничего общего.
К тому же у него был очень медленный скролинг, так как он был синхронизирован с кадровой развёрткой.
Потом были ещё какие-то винницкие (кажется, ВТА-30 и 31, различались интерфейсом -- ИРПР И ИРПС) Там было близко к VT-52, но с упомянутыми мной отличиями. Фразинские были ещё ближе. К тому же поддерживали оба набора -- КОИ-7/0 и КОИ-7/1. А потом ещё появились такие, в которых их можно было переключать на КОИ-7/2. Были и ещё какие-то, сейчас не помню.
SergeyIT писал:
23.12.2020 20:11
(в ed редакторе)
А в какой системе работали?
Мы начали в ДОС, но скоро перешли на ФОБОС. А потом на РАФОС. А потом уже на RT-11 и TSX-11.
ED не помню. Помню, что был EDIT. По идеологии как сейчас ed. Но когда появился TECO, я стал пользоваться только им. Из экранный помню TED. По идеологии, по-моему, немного похож на vi. K52 был, но пользоваться не могли.
Когда появилась "персоналка" "Электроника" (номер не помню, там можно было нормально использовать KED.
Что было ещё, уже не помню.
Когда начали появляться IBM-PC и ещё была СМ-1420, я написал программу эмулятор VT-52 и смог с персоналки на СМ нормально использовать K52.
Спасибо сказали:
Аватара пользователя
SergeyIT
Сообщения: 71
ОС: xUbuntu

Re: Используем символы псевдографики

Сообщение SergeyIT »

MiK13 писал:
23.12.2020 23:18
был EDIT
Да, этот.
Нашел с чего начинал изучение ОС
http://gordonbell.azurewebsites.net/digital/RT-11%20Intro%201977.pdf
До этого только на БЭСМ4 проги писал.
А вот pdp11/04 - с 1980г. C FDD и дисплея не было, был печатающий терминал (типа LA36). ОС rt11sj v.3.* с полной документацией.
В 1982 уже была pdp11/23. С 2 терминалами VT100, принтером, графопостроителем. ОС rsx11.
C1984 - 1990 - разные наши аналоги pdp11 (электроники, ДВК), тогда и написал свой редактор (по функционалу похожий на k52).
Извините, я все еще учусь
Спасибо сказали:
Ответить