『ドラゴンボール超(スーパー)』
ドラゴンボールは誰もがハマって何度も再放送を見て、内容忘れたころにまた見てを繰り返し、そろそろ見尽くすして飽きてきた感イメージなのですが、やはり、続きがあると知ると見てしまいますしやっぱり面白いです。
「魔人ブウ編」後のお話なのですが、序盤はバトルがないので、私的には落ち着いて見られます。バトル物なのに、戦闘場面以外を好んで見るんですよね。時々出てる弁当とか、レストランの料理が美味しそうです。そういえば悟空たちは大食いだったんですね。美味しい料理をたくさん食べられて羨ましいです。
何気なくprinterbannerを使っていたら、横に倒れた!の記号が、カメハメ波に見えてきたので、カメハメ波バナーを作りたくなりました。
今回はカメハメ波を動かすために、 perlの反復演算子xを使います。xの使い方ですが、まずは、スカラー変数の場合。
~$ perl -e '$a=5x10; print "$a\n"' 5555555555 ~$ perl -e '$a="A" x 10; print "$a\n"' AAAAAAAAAA
スカラー変数であれば、指定した数だけリピートした文字列が生成されます。
配列変数でxを使うと指定数の配列が出来上がります。
~$ perl -e '@a=(5) x 10; print "@a\n"' 5 5 5 5 5 5 5 5 5 5 ~$
以下は、反復演算子を使ってbannerコマンド表示を3倍に増幅する例です。
~$ banner HELLO | perl -ne '$a.=$_;END{print $a x 3}' # # ####### # # ####### # # # # # # # # # # # # # # ####### ##### # # # # # # # # # # # # # # # # # # # # ####### ####### ####### ####### # # ####### # # ####### # # # # # # # # # # # # # # ####### ##### # # # # # # # # # # # # # # # # # # # # ####### ####### ####### ####### # # ####### # # ####### # # # # # # # # # # # # # # ####### ##### # # # # # # # # # # # # # # # # # # # # ####### ####### ####### ####### ~$
では、かめはめ波を撃ってみましょう。図で表すほどでもないのですが、下図のような理屈になります。
printerbannerの表示一回毎に、sleepで停止させています。1秒では長すぎるので、0.1秒を指定していますが、1秒未満のsleepをするには、Debianではsleepenhで実行します。
~$ for i in `seq 130`;do clear; > printerbanner ! | perl -pe "\$s=' 'x$i;s/^.{30}(.{20})/\$1\$s/;"; > sleepenh 0.1;done
上記を実行すると、冒頭画像のコンソールかめはめ波が見られます。画面を広く使うので、フォントを小さくする必要があります。
コメント