アラのアラアラしい日記

こっそりかいてます

コマンドから突然のジェネレータつくりました

とても久しぶりの投稿です。

夏に負けていました。

最近メッセなどでもよく使うのでcommandから突然のアレをつくれるようにしました。
しにたいとおもいます。


f:id:wknar0311:20140907023116p:plain

$ 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
狂気の沙汰っぽくなりました。



という訳で、結果です。


f:id:wknar0311:20140907023625p:plain
okome!!!!


f:id:wknar0311:20140907023630p:plain
onigiri!!!!


f:id:wknar0311:20140907023634p:plain
ア!!!!



おしまい!健康大切に!