WikiDer > Баннер (Unix) - Википедия
Операционная система | Unix и Unix-подобный |
---|---|
Тип | Команда |
В знамя программа на Unix и Unix-подобный операционные системы выводит большой ASCII искусство версия текста, который предоставляется в качестве его программные аргументы. Одно из применений этой команды - создание хорошо заметных разделительных страниц для задания на печать.[1]
Операция
Каждый аргумент обрезается до 10 символов и печатается в отдельной «строке». Чтобы напечатать несколько слов в одной строке, они должны быть переданы как один аргумент, что выполняется из ракушка путем экранирования или цитирования слов в зависимости от ситуации.[1]
Связанная и более гибкая программа Фиглет, который может отображать текст с разными шрифтами и ориентациями.[2]
Выполнение
Способ внутренней реализации программы устарел. Используемые символьные шрифты встроены в сам программный код как статически инициализированные структуры данных. Используются две структуры данных. Первый - это таблица данных, содержащая последовательность инструкций печати, которые кодируют битовую карту для каждого символа (в кодировке, специфичной для знамя
программа). Второй - это индекс в этой таблице, который указывает для каждого кода символа, где инструкции печати для этого символа начинаются и заканчиваются.[3]
Обе структуры данных были написаны вручную. Спинеллис отмечает, что «трудно придумать более подверженный ошибкам и неподдерживаемый формат данных». Он отмечает резкий контраст между исходным кодом знамя
программа и автоматически сгенерированный исходный код для кодирования компьютерных шрифтов в программные данные (с использованием данных шрифта 6 на 10 в исходном коде порта mac68k из NetBSD для сравнения). Автоматически сгенерированные данные комментируются, документируя с помощью ASCII, как были получены битовые шаблоны. Автоматически сгенерированные данные были созданы из файла растрового изображения, который сам был сгенерирован с помощью программы создания / редактирования растровых изображений с графическим пользовательским интерфейсом. А автоматически сгенерированные данные организованы простым и очевидным образом - последовательность незакодированных байтов фиксированной длины для каждого глиф.[3]
Спинеллис также отмечает, что в современных компьютерных системах редко имеет смысл встраивать такие данные в сам исполняемый образ программы, так как прирост производительности от этого незначителен. Это затрудняет адаптацию программы к различным языковым условиям или сопровождение программы. Более предпочтительный подход в современных системах - хранить такие данные в отдельном файле данных, отличном от исполняемого файла изображения программы, или в вилка ресурса программы, которую программа читает во время выполнения.[3]
Версии
Неполный список версий:
- К AT&T, в Система UNIX V.[4][5][6]
- Автор: Cedar Solutions. Работает на современных Linux системы по состоянию на 2008 г. Печатает только по горизонтали с фиксированным размером.
- К Мэри Энн Хортон в Калифорнийском университете в Беркли, распространяется как часть bsdmainutils пакет, под названием принтербаннер. Работает на современном Linux, GNU Hurd, и Mac OS X системы по состоянию на 2008 год. Вертикальная печать с использованием шрифта переменного размера.
Пример вывода
Из баннерной программы, ориентированной на терминал:
$ banner 'Привет!' # # ### # # ###### # # #### ### # # # # # # # ### ####### ##### # # # # # # # # # # # # # # # # # # # ### # # ###### ###### ###### #### ###
Одно письмо из ориентированной на принтер баннерной программы, как обычно BSD и производные:
$ banner -w80 "а" ##### ######### ############### ### ################ ###### ################## ######## ##### ##### ######### #### #### ## ### ### #### ## ### ### ## ### ### ### #### ### #### ############################# ############################## ############################## ############################ ########################### ### # #
Отображение непрерывных часов в течение 1000 секунд:
$ повторять 1000 sh -c '(clear; date + "% H.% M.% S" | xargs banner; sleep 1)' # ##### # ##### ####### ####### ## # # ## # # # # # # # # # # # # # ###### # ##### ###### ###### # # # ### # # ### # # # # # ### # # ### # # # # ##### ##### ### ##### ####### ### ##### #####
Смотрите также
Рекомендации
- ^ а б Стив Морицугу; Санджив Гуха; Джеймс Эдвардс; Дэвид Питтс (2000). Практическая UNIX. Que Publishing. стр.220–221. ISBN 0-7897-2250-X.
- ^ Арнольд Роббинс (2006). UNIX в двух словах. О'Рейли. стр.24. ISBN 0-596-10029-9.
- ^ а б c Диомидис Спинеллис (2006). Качество кода. Adobe Press. С. 70–71. ISBN 0-321-16607-8.
- ^ Хэтч (19 апреля 2004 г.). «Система V в AIX и Dynix / ptx». Архивировано из оригинал на 2009-05-26. Получено 2008-07-23.
- ^ «AIX: документ 157-28-E» (PDF). zen77087.zen.co.uk.[постоянная мертвая ссылка]
- ^ «Пакет: sysvbanner (1.0.15 и другие)». Debian. В архиве из оригинала на 20.12.2016. Получено 2010-05-06.
дальнейшее чтение
- Амир Афзал (2008). «Баннерная команда». UNIX без ограничений. Прентис Холл. С. 462–463. ISBN 0-13-119449-6.
внешняя ссылка
- 4.2BSD Игры Руководство –
- FreeBSD Игры Руководство –