Banner (UNIX)UNIXにおけるbannerとはコマンドラインの引数に与えられた文字列を巨大なアスキーアートに変換して出力するプログラムである。本コマンドの1つの利用方法としては、印刷ジョブ用に、極めて見やすい区切りページを作成する事が挙げられる[1]。 操作各引数はそれぞれ10文字で切り詰められ、それらが(巨大化され)「1行」ずつ出力される。複数の語を単一の行に出力させるには、それ故単一の引数として渡してやらねばならない。その方法とは、エスケープするか、語を引用符で囲むことでシェルが適切に処理できる形にすることである[1]。 関連するプログラムとして、より柔軟なFIGletというプログラムがある。これは、テキストを異なるフォントと方向から表示させることが可能である[2]。 実装このプログラム内部に実装している方法はエラーを起こしやすく、時代遅れである。使用される文字フォントが、静的に初期化されるデータ構造として、プログラム・コード自体にハードコーディングされている。2つのデータ構造があり、1つは( 両データ構造は手動作成されている。スピネリスは、「これ以上にエラーを起こしやすく、かつデータ・フォーマットをメンテナンス不可能なまでにするには、かえって難しい」と推察している。彼は、 スピネリスは、さらに続けて、現代的なコンピュータ・システムにおいて、これらデータをプログラムの実行イメージ自身に埋め込むことは、滅多な事がない限り、賢明ではなく、たとえそうしたとしてもパフォーマンスの向上にはさほど寄与しない、と述べている。そのようなことをすると、異なるロケールにプログラムを対応させることや、プログラム自身をメンテナンスすることが困難になる。現代的なシステムにおいてより好まれるアプローチは、そのようなデータを別のファイルに分けて保存し、プログラムの実行イメージファイルと分離すること、またはプログラムのリソースフォークに置き、実行時にプログラムが読み込むこと、である[3]。 バージョン各派生版の一部を以下に列記する。
出力例ターミナル指向のbannerプログラムでは以下のような出力となる: $ banner Hello! # # ### # # ###### # # #### ### # # # # # # # ### ####### ##### # # # # # # # # # # # # # # # # # # # ### # # ###### ###### ###### #### ### Mac OS XなどBSDとその派生オペレーティングシステム (OS) に通常組み込まれている、プリンター指向なbannerプログラムでは1文字を次のように表示する: $ banner -w80 "a" ##### ######### ############### ### ################ ###### ################## ######## ##### ##### ######### #### #### ## ### ### #### ## ### ### ## ### ### ### #### ### #### ############################# ############################## ############################## ############################ ########################### ### # # 脚注
参考文献
関連項目 |