Skip to content

Instantly share code, notes, and snippets.

@papiron
Last active January 20, 2024 03:52
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save papiron/1539a628cdada4d46054e30c082824b4 to your computer and use it in GitHub Desktop.
Save papiron/1539a628cdada4d46054e30c082824b4 to your computer and use it in GitHub Desktop.
クールなバナーを作るシェルスクリプト(MacやFreeBSD用。Linuxの場合は下記のコメントを参照。)
#!/bin/sh
[ $# -lt 1 ] && echo 'Usage: coolbanner STRING [HEIGHT]' && exit
string="$1"
if [ -z $2 ]; then
height=30
else
height="$2"
fi
banner -w $height "$string" |\
awk '{printf "%-'$height's\n", $0}' |\
tr '# ' '+-' |\
awk '
{
for(i=1;i<=NF;i++)a[NR,i]=$i
} END {
for(j=1;j<=NF;j++){
for(i=1;i<=NR;i++){
printf a[i,j]
}
print ""
}
}
' FS= |\
tail -r |\
tr '+-' "# " |\
sed 's/ *$//'
@papiron
Copy link
Author

papiron commented Sep 24, 2016

MacやFreeBSDのbannerコマンドは、カッチョいいbannerを出してくれますが90度回転してる・・・
なので横にして自然に読めるようなシェルスクリプトを作ってみました。
MacやFreeBSD限定です。標準で入っているコマンドだけ使ってるので、追加ソフト入れたりせず動くと思います。

使い方は下記の通り。第一引数に表示したいASCII文字列、第二引数に文字の高さを指定します。
文字の高さが無指定だとデフォルトを30にしています。bannerコマンドのデフォルトは132でデカすぎるので。
$ coolbanner 'Hello World' 35

@papiron
Copy link
Author

papiron commented Sep 24, 2016

2016-09-24 14 02 39

@papiron
Copy link
Author

papiron commented Sep 24, 2016

Linuxな方へ
UbuntuやDebianなどのLinuxでもbsdmainutilsというパッケージを入れればprinterbannerというコマンドが使えます。上記のシェルスクリプト12行目bannerprinterbannerに書き換えればオケ!
https://packages.debian.org/ja/sid/bsdmainutils
それからもう一つ、27行目のtail -rtacに変えてください。

@greymd
Copy link

greymd commented Sep 24, 2016

備忘録としてインストール方法

$ curl -L https://gist.githubusercontent.com/papiron/1539a628cdada4d46054e30c082824b4/raw/bf066e21dc0b63c0825fab9186264b14b6568fa1/coolbanner> /usr/local/bin/coolbanner && chmod +x /usr/local/bin/coolbanner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment