существует ли: xterm bash в пользовательском окне рамки?

Вопрос или проблема

существует ли стиль для [xterm + bash сценарии, команды] внутри пользовательской рамки?

я бы хотел этот стиль, смотрите пример:

╭─────────────────────────┤текст заголовок1├────────────────────────╮
│                                                              │
│текст, команда, сценарий, если иначе, echo, cat, sed, любая команда│
├──────────────────────────────────────────────────────────────┤
│текст, команда, сценарий, если иначе, echo, ca t, sed, любая команда│
│текст, команда, сценарий, если иначе, echo, cat , sed, любая команда│
│текст, команда, сценарий, если иначе, echo, cat, sed, любая команда│
├──────────────────────────────────────────────────────────────┤
├─────────────────────────┤текст заголовок2├────────────────────────┤
│текст, команда, сценарий, если иначе, echo, cat, sed, любая команда│
╰──────────────────────────────────────────────────────────────╯

шрифт: Моноширинный

…я в это не верю..

можете сделать это??

Шрифты в терминальных эмуляторах всегда моноширинные.

Создание этого вывода в оболочке сценария — это просто вопрос ввода его буквально, например так:

#! /bin/sh -
cat << 'EOF'
╭─────────────────────────┤текст заголовок1├────────────────────────╮
│                                                              │
│текст, команда, сценарий, если иначе, echo, cat, sed, любая команда│
├──────────────────────────────────────────────────────────────┤
│текст, команда, сценарий, если иначе, echo, ca t, sed, любая команда│
│текст, команда, сценарий, если иначе, echo, cat , sed, любая команда│
│текст, команда, сценарий, если иначе, echo, cat, sed, любая команда│
├──────────────────────────────────────────────────────────────┤
├─────────────────────────┤текст заголовок2├────────────────────────┤
│текст, команда, сценарий, если иначе, echo, cat, sed, любая команда│
╰──────────────────────────────────────────────────────────────╯
EOF

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

Имея сценарий, закодированный в UTF-8, и заменив cat на iconv -f UTF-8, можно гарантировать, что рамки будут правильно рисоваться в локали пользователя, если ее карта символов содержит эти символы для рисования рамок.

До того, как UTF-8 стал обычным делом, обычным методом рисования рамок было указать терминальному эмулятору переключиться на альтернативную кодировку.

После tput smacs (sет mод aльтернативный cарьер sет; tput rmacs для переключения обратно, хотя вам может понадобиться tput enacs для первоначального включения) в большинстве терминалов символы такие как `afgijklmnopqrstuvwxyz{|}~ становятся ◆▒°±␋┘┐┌└┼⎺⎻─⎼⎽├┤┴┬│≤≥π≠£·, и для тех, кто этого не делает, возможность acsc terminfo дает перевод. Смотрите раздел Графика линий в странице man terminfo(5) для подробностей. Использование этих символов сделает вывод совместимым с большим количеством терминалов, и локали, которые не используют UTF-8, но это более сложно сделать в сценарии оболочки без использования специализированных приложений, которые рисуют рамки, таких как dialog или терминальные веб-браузеры, такие как elinks или w3m, которые могут выгружать отрисованную форму HTML-таблицы.

Ответ или решение

Возможность создания пользовательского окна с xterm и bash сценариями

Вопрос о том, возможно ли создать стильный интерфейс, в котором используется xterm с bash скриптами внутри пользовательского окна (frame window), заслуживает детального рассмотрения. Данная задача предполагает использование команд и текстов в терминале с привлекательным оформлением.

Содержание вашего запроса

Вы представили пример вывода, который включает текстовые рамки и различные команды, отображаемые в режиме псевдографики. Это может быть достигнуто в среде терминала, и важно понимать, как можно реализовать этот интерфейс.

Шаги реализации

  1. Создание текстовых рамок: Основным инструментом для отображения сложных текстовых форматов в терминале является использование определенных символов, известных как символы построения рамок (box drawing characters). Для успешного отображения таких символов очень важно, чтобы кодировка вашего терминала поддерживала эти символы. Наиболее распространенной и рекомендуемой кодировкой является UTF-8.

  2. Пример скрипта: Вы можете создать bash скрипт, чтобы вывести ваш желаемый текст. Например:

    #! /bin/bash
    cat << 'EOF'
    ╭─────────────────────────┤text title1├────────────────────────╮
    │                                                              │
    │text, command, script, if else, echo, cat, sed, any command  │
    ├──────────────────────────────────────────────────────────────┤
    │text, command, script, if else, echo, cat, sed, any command  │
    │text, command, script, if else, echo, cat, sed, any command  │
    │text, command, script, if else, echo, cat, sed, any command  │
    ├──────────────────────────────────────────────────────────────┤
    ├─────────────────────────┤text title2├────────────────────────┤
    │text, command, script, if else, echo, cat, sed, any command  │
    ╰──────────────────────────────────────────────────────────────╯
    EOF
  3. Использование iconv: Вы можете использовать iconv, чтобы убедиться, что текст корректно отображается в зависимости от локали пользователя. Это особенно важно, если скрипт будет выполняться в разных системах, где могут использоваться различные кодировки символов. Например:

    iconv -f UTF-8 -t UTF-8
  4. Поддержка альтернативного символа набора: В ситуации, когда терминал не поддерживает UTF-8, вы можете использовать команду tput для переключения на альтернативный набор символов. Это позволяет улучшить совместимость отображения:

    tput smacs   # Включает альтернативный набор символов
    # Ваш вывод
    tput rmacs   # Отключает альтернативный набор символов
  5. Использование специализированных утилит: Для создания более сложных интерфейсов можно использовать элементы интерфейса в утилитах вроде dialog, которые позволяют делать более интерактивные и визуально привлекательные интерфейсы в терминале.

Заключение

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

Таким образом, ваш запрос может быть реализован, и вы можете смело вводить свои команды и сценарии, создавая тем самым стильный интерфейс в терминале.

Оцените материал
Добавить комментарий

Капча загружается...