배너(유닉스)

banner (Unix)
기수를 달다
운영 체제유닉스 및 유닉스 유사
유형명령

유닉스 및 유닉스 유사 운영체제배너 프로그램프로그램 인수로 제공되는 텍스트의 대형 ASCII 아트 버전을 출력한다.명령의 한 가지 용도는 인쇄 작업에 대해 잘 보이는 구분 기호를 만드는 것이다.[1]

작전

각각의 논거는 10자로 잘라서 그 자체로 "줄"에 인쇄된다.따라서 한 줄에 여러 단어를 인쇄하려면 하나의 인수로 전달되어야 하는데, 이는 적절한 단어를 탈출하거나 인용함으로써 껍데기에서 이루어진다.[1]

관련되고 보다 유연한 프로그램은 다른 글꼴과 방향으로 텍스트를 표시할 수 있는 FIGlet이다.[2]

실행

그 프로그램이 내부적으로 시행되는 방식은 구시대적이다.사용되는 문자 글꼴은 정적으로 초기화된 데이터 구조로서 프로그램 코드 자체에 유선 연결된다.두 개의 데이터 구조가 사용된다.첫 번째는 각 문자에 대한 비트맵을 인코딩하는 일련의 인쇄 지침으로 구성된 데이터 표입니다(특정 인코딩에서).banner프로그램.두 번째는 각 문자 코드에 대해 해당 문자에 대한 인쇄 지침이 시작되고 끝나는 위치를 나타내는 해당 표의 색인이다.[3]

두 데이터 구조는 모두 수기로 작성되었다.스피넬리스는 "더 오류 발생 가능성이 높고 유지보수가 불가능한 데이터 형식을 내놓기가 어렵다"고 관측한다.그는 그 소스코드의 극명한 대조를 관찰한다.banner컴퓨터 글꼴을 프로그램 데이터로 인코딩하기 위해 자동으로 생성된 소스 코드(NetBSD의 mac68k 포트 소스 코드에서 6-by-10 글꼴 데이터 사용)자동으로 생성된 데이터는 비트의 패턴이 어떻게 도출되었는지 ASCII 아트로 문서화하여 주석 처리한다.자동으로 생성된 데이터는 비트맵 파일에서 생성되었으며, 그 자체는 그래픽 사용자 인터페이스가 있는 비트맵 생성/편집 프로그램을 사용하여 생성되었다.그리고 자동으로 생성되는 데이터는 글리프에 대해 인코딩되지 않은 바이트의 고정 길이 시퀀스인 직설적이고 분명한 방식으로 구성된다.[3]

Spinellis는 또한 현대의 컴퓨터 시스템에서는 프로그램 실행 이미지 자체에 그러한 데이터를 내장하는 것이 현명하지 못하며, 그렇게 함으로써 얻는 성능은 무시해도 된다고 본다.그렇게 하는 것은 프로그램을 다른 지역에 적응시키거나 프로그램을 유지하는 것을 어렵게 한다.현대 시스템에서 선호되는 접근방식은 프로그램 실행 이미지 파일과 구별되는 별도의 데이터 파일이나 프로그램이 런타임에 읽는 프로그램의 리소스 포크에 이러한 데이터를 저장하는 것이다.[3]

버전

일부 버전 목록:

출력 예제

터미널 지향 배너 프로그램:

 달러 현수막 '안녕!' ##############################################################################################################################################

BSD 및 파생 모델에서 흔히 볼 수 있는 프린터 지향 배너 프로그램에서 보낸 한 글자:

 $ banner -w80 "a" ##### ######### ###############        ### ################      ###### ##################     ######## #####         #####    ######### ####           ####      ##  ### ###            ####           ## ###            ###            ## ###            ###           ### ####         ###           #### ########################################################### ############################## ############################ ########################### ### # #

약 1000초 동안 연속 시계 표시:[a][b]

 $ 1000 sh -c '(지우기)' 날짜 +" %H를 반복한다.%M.%S"   xargs banner ; sleep 1)' #     #####             #     #####          ####### ####### ##    #     #           ##    #     #         #       # # #    #                # #          #         #       # #    ######             #     #####          ######  ###### #    #     #   ###      #    #         ###         #       # #    #     #   ###      #    #         ###   #     # #     # #####   #####    ###    #####  #######   ###    #####   #####

참고 항목

  • FIGlet – 배너 글꼴을 선택할 때 동일한 기능을 제공하는 Linux 유틸리티

메모들

  1. ^ 다음 코드가 Zsh 셸에서 실행되지 않으면 이 코드에서처럼 반복 명령을 정의해야 한다.[7]
    함수 반복{{(i=0;i<$1;i++); do eval ${*:2} }

    또는 repeat 명령을 다음과 같이 while loop으로 교체함으로써 그러한 정의를 피할 수 있다.

    $ i=0; 동안($i<1000)). sh -c '(지우기' 날짜 +" %H수행하십시오.%M.%S" xargs 배너; 절전 1 ; (i=$i+1)]; 완료
  2. ^ 또한 다음 중 하나를 대체하여 FIGlet 유틸리티를 사용할 수도 있다.banner와 함께figlet -f banner

참조

  1. ^ a b Steve Moritsugu; Sanjiv Guha; James Edwards; David Pitts (2000). Practical UNIX. Que Publishing. pp. 220–221. ISBN 0-7897-2250-X.
  2. ^ Arnold Robbins (2006). UNIX in a Nutshell. O'Reilly. pp. 24. ISBN 0-596-10029-9.
  3. ^ a b c Diomidis Spinellis (2006). Code Quality. Adobe Press. pp. 70–71. ISBN 0-321-16607-8.
  4. ^ Hatch (19 April 2004). "System V in AIX and Dynix/ptx". Archived from the original on 2009-05-26. Retrieved 2008-07-23.
  5. ^ "AIX: Document 157-28-E" (PDF). zen77087.zen.co.uk.[영구적 데드링크]
  6. ^ "Package: sysvbanner (1.0.15 and others)". Debian. Archived from the original on 2016-12-20. Retrieved 2010-05-06.
  7. ^ Frankowski, Jędrzej (May 8, 2020). "Linux Commands – Repeat a Command n Times". Archived from the original on November 19, 2021. Retrieved January 22, 2022.

추가 읽기

  • Amir Afzal (2008). "The banner command". UNIX Unbounded. Prentice Hall. pp. 462–463. ISBN 0-13-119449-6.

외부 링크