(Translated by https://www.hiragana.jp/)
banner (UNIX) - Wikipedia コンテンツにスキップ

banner (UNIX)

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

UNIXにおけるbannerとはコマンドラインの引数ひきすうあたえられた文字もじれつ巨大きょだいアスキーアート変換へんかんして出力しゅつりょくするプログラムである。ほんコマンドの1つの利用りよう方法ほうほうとしては、印刷いんさつジョブように、きわめてやすい区切くぎりページを作成さくせいすることげられる[1]

操作そうさ

[編集へんしゅう]

かく引数ひきすうはそれぞれ10文字もじめられ、それらが(巨大きょだいされ)「1ぎょう」ずつ出力しゅつりょくされる。複数ふくすうかたり単一たんいつくだり出力しゅつりょくさせるには、それ単一たんいつ引数ひきすうとしてわたしてやらねばならない。その方法ほうほうとは、エスケープするか、かたり引用いんようかこむことでシェル適切てきせつ処理しょりできるかたちにすることである[1]

関連かんれんするプログラムとして、より柔軟じゅうなんFIGletというプログラムがある。これは、テキストをことなるフォント方向ほうこうから表示ひょうじさせることが可能かのうである[2]

実装じっそう

[編集へんしゅう]

このプログラム内部ないぶ実装じっそうしている方法ほうほうはエラーをこしやすく、時代遅じだいおくれである。使用しようされる文字もじフォントが、静的せいてき初期しょきされるデータ構造こうぞうとして、プログラム・コード自体じたいハードコーディングされている。2つのデータ構造こうぞうがあり、1つは(bannerプログラムに特定とくていのエンコーディング方法ほうほうで、)かく文字もじのビットマップを符号ふごうする、一連いちれん出力しゅつりょく命令めいれい網羅もうらするデータ・テーブルである。2番目ばんめは、かく文字もじコードにたいし、その文字もじ開始かいし終了しゅうりょう指示しじする印字いんじ出力しゅつりょくするテーブルにあるインデックスである[3]

りょうデータ構造こうぞう手動しゅどう作成さくせいされている。スピネリスは、「これ以上いじょうにエラーをこしやすく、かつデータ・フォーマットをメンテナンス不可能ふかのうなまでにするには、かえってむずかしい」と推察すいさつしている。かれは、bannerプログラムのソースコードと、(比較ひかくのためにNetBSD・mac68k移植いしょくはんのソースコードにおける、6から10のフォント・データを使用しようし、)コンピュータフォントをプログラム・フォント・データにんで符号ふごうするためのソースコードを自動的じどうてき生成せいせいした場合ばあい比較ひかくして、いちじるしいまでのちがいを観察かんさつしている。自動的じどうてき生成せいせいされたデータについては、ビットパターンをはじきし、アスキーアートを表現ひょうげんしている、とコメントしている。自動的じどうてき生成せいせいされたデータは、GUIをもつ作成さくせい編集へんしゅうプログラムで生成せいせいしたビットマップファイルから生成せいせいされる。そして自動的じどうてき生成せいせいされたデータは、簡単かんたん理解りかいしやすい手法しゅほう、— かくグリフよう符号ふごうされていない一連いちれん固定こていちょうバイトれつ構成こうせいされている[3]

スピネリスは、さらにつづけて、現代げんだいてきなコンピュータ・システムにおいて、これらデータをプログラムの実行じっこうイメージ自身じしんむことは、滅多めったことがないかぎり、賢明けんめいではなく、たとえそうしたとしてもパフォーマンスの向上こうじょうにはさほど寄与きよしない、とべている。そのようなことをすると、ことなるロケールにプログラムを対応たいおうさせることや、プログラム自身じしんをメンテナンスすることが困難こんなんになる。現代げんだいてきなシステムにおいてよりこのまれるアプローチは、そのようなデータをべつのファイルにけて保存ほぞんし、プログラムの実行じっこうイメージファイルと分離ぶんりすること、またはプログラムのリソースフォークき、実行じっこうにプログラムがむこと、である[3]

バージョン

[編集へんしゅう]

かく派生はせいばん一部いちぶ以下いか列記れっきする。

出力しゅつりょくれい

[編集へんしゅう]

ターミナル指向しこうのbannerプログラムでは以下いかのような出力しゅつりょくとなる:

$ banner Hello!
#     #                                   ###
#     #  ######  #       #        ####    ###
#     #  #       #       #       #    #   ###
#######  #####   #       #       #    #    #
#     #  #       #       #       #    #
#     #  #       #       #       #    #   ###
#     #  ######  ######  ######   ####    ###

Mac OS XなどBSDとその派生はせいオペレーティングシステム (OS) に通常つうじょうまれている、プリンター指向しこうなbannerプログラムでは1文字もじつぎのように表示ひょうじする:

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

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ a b Steve Moritsugu, Sanjiv Guha, James Edwards, David Pitts (2000). Practical UNIX. Que Publishing. pp. 220–221. ISBN 078972250X. https://books.google.co.jp/books?id=PkZdv3UNTCgC&pg=PA220&redir_esc=y&hl=ja 
  2. ^ Arnold Robbins (2006). UNIX in a Nutshell. O'Reilly. pp. 24. ISBN 0596100299. https://books.google.co.jp/books?id=YkNiiLupct4C&pg=PA24&redir_esc=y&hl=ja 
  3. ^ a b c Diomidis Spinellis (2006). Code Quality. Adobe Press. pp. 70–71. ISBN 0321166078. https://books.google.co.jp/books?id=vEN-ckcdtCwC&pg=PA70&redir_esc=y&hl=ja 
  4. ^ http://www.zen77087.zen.co.uk/nug/alleg/sysv-aix-dynix.shtml
  5. ^ http://www.zen77087.zen.co.uk/nug/doc/IBM-157-28-E.pdf
  6. ^ http://packages.debian.org/stable/sysvbanner
  7. ^ http://cedar-solutions.com/software/utilities.html
  8. ^ http://packages.debian.org/stable/bsdmainutils

参考さんこう文献ぶんけん

[編集へんしゅう]

関連かんれん項目こうもく

[編集へんしゅう]