とても久しぶりの投稿です。
夏に負けていました。
最近メッセなどでもよく使うのでcommandから突然のアレをつくれるようにしました。
しにたいとおもいます。
$ sudden okome
こんな感じで出来るようにしました。
まず、引数からバイト数を取得します。
文字数ではなくバイト数にしてるのは半角と全角でフレームの大きさが違ってしまうからです。
aliasで引数の取得は出来ないのでfunctionをつくります。
function sudden { byte=`expr length "$1"` }
地味にハマったのですが、環境によってexpr lengthはダブルクォーテーションつけないと読んでくれないことがあって、構文エラーになります。
上のフレームが「人」
真ん中「> okome <」
下「Y^」
それぞれ2byte, 2+1+1+2byte, 2byteあるので、
それに沿って適当に割ったり足したりをします。
function sudden { byte=`expr length "$1"` frame=`expr $byte / 2 + 2` }
このframeという変数を使って、枠を表示させていきます。
c=0 while [ $c -ne $frame ] do echo -n "人" c=`expr $c + 1` done
あとはその他をいい感じに表示させるだけです。
最終的にこんな感じになりました。
gist7db337ce7146c1b703e8
狂気の沙汰っぽくなりました。
という訳で、結果です。
okome!!!!
onigiri!!!!
ア!!!!
おしまい!健康大切に!