Очистите экран и покажите баннер

Мне нужен текстовый баннер на экране, который проецируется все время. Экран подключен к ПК с tmux на нем.

Пример текстовых «баннеров»:

figlet $(fortune) 

или

 toilet "$(cowsay $(fortune))" 

Вы поняли эту идею.

Первоначально мы думали, что для этого значка нужны «возможности восстановления», если что-то пошло не так, поэтому мы сделали что-то вроде этого:

 watch --interval 1 --no-title echo Paranoid about crashes, but I should not be 

но вещь никогда не разбивалась через год! ( uptime > 1 год)

Поэтому мы упрощаем и развертываем в другом месте. Я просто хочу, чтобы команда UNIX выполняла следующие действия:

  • очистить экран (например, clear )
  • показывает форматированную строку (например, printf )
  • является модальным (например, приложение ncurses )

Я начал писать что-то вроде этого, ущипнул веб-учебник:

 #include <ncurses.h> int main(int argc, char** argv) { char* greeting = "Hello, world!"; initscr(); addstr(greeting); refresh(); getch(); endwin(); return 0; } 

но это не «модальный» (с модальным бытием: игнорировать все входные данные до CTRL + C), и я могу «переписать существующий инструмент».

Какой инструмент UNIX вы бы использовали в моем случае?

2 Solutions collect form web for “Очистите экран и покажите баннер”

Команда для наблюдения за Ctrl + C (сигнал INT) является trap .

 #!bin/bash MSG="Hello, world!" trap "clear; echo -e $MSG" SIGINT SIGTERM while : do sleep 60 done 

Обновление – Другие сигналы, которые могут быть пойманы с помощью ловушки

SIGINT – Ctrl-c
SIGQUIT – Ctrl- \ (это выйдет из программы, но команды в ловушке все равно будут выполнены)

SIGSTOP (Ctrl-z), похоже, не попадает в ловушку.

trap также может поймать сигналы, выданные kill , но я не уверен, сколько их можно поймать.

trap также поддерживает некоторые другие специальные имена: –
EXIT , DEBUG , RETURN и ERR .
Дальнейшую документацию по ним можно найти в справочном руководстве по bash .

Если я понимаю, вам нужен бесконечный цикл:

 while :; do sleep 1 clear # the command: echo, toilet, etc. done 

Возможно, проблема с часами заключается в том, что расширение оболочки $(command ..) выполняется один раз до того, как вызывается так, что вывод не изменяется; сменить двойные кавычки на одинарные кавычки

 watch --interval 1 'cowsay $(fortune)' 
  • Не удается получить Qemu через SSH
  • Инструменты презентации в день
  • Попробуйте установить lib32-ncurses-compat-libs 6.04 на Antegros
  • Использование диска внутри архивов, таких как ncdu
  • Как я могу проверить, какие терминальные определения доступны?
  • Сценарий информационной системы реального времени с использованием ncurses и диалога
  • Как я могу перенаправить вывод в файл, когда программа построена с помощью библиотеки ncurses
  • Файлы библиотеки не найдены, хотя они указаны в файле ldconfig
  • tmux: приложения ncurses отображаются неправильно (с мусором и т. д.)
  • Escape последовательности в выводе скрипта, вызванного из приложения ncurses
  • Невозможно отобразить греческие буквы на Mutt 1.7
  • Interesting Posts

    Что это значит! перед полем имени пользователя в / etc / passwd?

    libcrypto.so.10: невозможно открыть файл общих объектов: нет такого файла или каталога

    proxychain не может решить ip-адрес

    Связывание проблем с libjpeg

    обмен словами с awk вокруг символа / текста ("to")

    Как запустить бесконечный цикл в фоновом режиме

    autofs: как проверить, является ли данный каталог ловушкой монтирования, из пользовательского пространства?

    hostapd, ath5k, nl80211 – как заставить его работать?

    Мониторинг процессов, пытающихся получить доступ к несуществующему файлу или каталогу

    Невозможно смонтировать NFS «Программа не зарегистрирована ошибка»

    Что такое командные праймериз?

    Установка переменных в / etc / environment, не имеющих влияния, но установка их в командной строке

    Обеспечить постоянную работу службы systemd

    Есть ли дистрибутив Linux с воспроизводимой системой сборки?

    Различное поведение записи для владельца и члена группы, несмотря на 775 разрешений

    Linux и Unix - лучшая ОС в мире.