Create a gist now

Instantly share code, notes, and snippets.

@papiron /coolbanner
Last active Dec 27, 2016

What would you like to do?
クールなバナーを作るシェルスクリプト(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/ *$//'
Owner
papiron commented Sep 24, 2016 edited

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

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

Owner
papiron commented Sep 24, 2016

2016-09-24 14 02 39

Owner
papiron commented Sep 24, 2016 edited

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

greymd commented Sep 24, 2016 edited

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

$ 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