banner は与えたメッセージを大きなブロック体のASCII文字で出力するシンプルなコマンドです。
スクリプトの見出しや、CIログのバナー表示、イベント端末の飾り付けなどに使えます。
実装差に注意:Linux では SysV 由来の
sysvbanner(banner)が主流で、先頭10文字のみを大文字で描画・オプションほぼ無し。BSD 系のbanner(6)は-wなどのオプションがあり、メッセージ省略時に標準入力を読む実装もあります。(manpages.debian.org)
構文(Syntax)
# SysV 系(Debian/Ubuntu の `sysvbanner` など)
banner TEXT [TEXT ...]
# BSD 系(例: FreeBSD/OpenBSD の banner(6))
banner [-w WIDTH] [-d] [-t] message ...
# message を省略すると一行だけ標準入力から読む実装もあり
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-w WIDTH(BSD系) | 出力の横幅を指定(既定は 132 など実装依存)。小さすぎると潰れます。 | banner -w 80 "DEPLOY READY" (manpages.debian.org) |
-d(BSD系) | デバッグ表示。 | banner -d "TEST" (manpages.debian.org) |
-t(BSD系) | トレース表示。 | banner -t "TEST" (manpages.debian.org) |
SysV 系(
sysvbanner)はオプション無しで、先頭10文字のみを描画します。非ASCIIは空白として扱われます。(manpages.debian.org)
実行例
基本:そのまま大きな文字を出す(SysV系/多くのLinux)
説明: 先頭10文字だけが描かれます。
コマンド:
banner "HELLO WORLD"
出力例: HELLO WORL(10文字分を大型ASCIIで描画) (manpages.debian.org)
幅を調整してセンターに近づける(BSD系)
説明: 横幅 80 カラムに収まるよう縮小して描画します。
コマンド:
banner -w 80 "DEPLOY READY"
(幅を詰めすぎると文字が潰れることがあります) (manpages.debian.org)
メッセージを省略して標準入力から読む(BSD系)
説明: パイプで一行だけ渡して描画します。
コマンド:
echo "OPS" | banner -w 60
非ASCII(日本語など)は描けない例(SysV系)
説明: ASCII 以外は空白扱いになります。
コマンド:
banner "こんにちは"
出力例(例): 空白行(何も描かれない) (manpages.debian.org)
エラー例:未知のオプションを渡した(BSD系)
説明: 未定義のフラグは使用法エラーになります。
コマンド:
banner -z "TEST"
出力例(例):
usage: banner [-dt] [-w width] message ...
関連コマンド
figlet: 多数のフォント(.flf)で大型ASCIIアート化。実用性高。toilet: FIGlet 互換の別実装(Unicode/色など拡張)。showfigfonts: FIGlet フォントの一覧プレビュー。cowsay: 吹き出し付きASCIIアート。ジョーク用途に。
備考
- 環境差: 多くの Linux では
bannerはsysvbanner実装で、10文字制限・オプション無し・ASCII 限定。BSD 系banner(6)は-wなどのオプションを持ちます。(manpages.debian.org) - パッケージ事情(Ubuntu系): 旧
bsdmainutilsに含まれていたbannerは構成変更の影響を受け、printerbannerへ名称変更した時期や提供終了の経緯が話題になりました(必要なら代替にsysvbanner/figletを導入)。(Stack Overflow, Ask Ubuntu) - 実用上のコツ: 日本語や絵文字を扱いたい場合は
figlet/toiletなど別ツールを検討してください。
参考
- Debian(
sysvbannerのbanner(1)): https://manpages.debian.org/trixie/sysvbanner/banner.1.en.html (manpages.debian.org) - Debian(manpages-ja の
banner(6)和訳・BSD系オプション記述): https://manpages.debian.org/trixie/manpages-ja/banner.6.ja.html (manpages.debian.org) - FreeBSD/OpenBSD 系
banner(6)(英語): https://man.freebsd.org/cgi/man.cgi?query=banner&sektion=6 (man.freebsd.org) bannerの提供形態の変遷(Q&A): https://stackoverflow.com/questions/652517/whats-the-deal-with-the-banner-command (Stack Overflow)- Ubuntu における
printerbanner/bsdmainutilsの状況: https://askubuntu.com/questions/1388340/how-can-i-get-printerbanner-command-back-in-21-10 (Ask Ubuntu) - 関連:
figlet(6)man(参考): https://manpages.ubuntu.com/manpages/latest/en/man6/figlet.6.html

コメント