ジョークコマンドって面白い
下記のLinuxのジョークコマンド紹介を見て、面白いから私も作ってみようと思いました。
雪を降らせるコマンドがあったので、私なりにbashで似たようなスクリプトを書いてみようと思います。
他にも、スタウォーズの映画を見れるコマンドや電車が走るコマンドがあって、結構面白いです。
仕事の合間に見ると、いい暇つぶしになりますよ。
紹介されてた雪降らせるコマンド
ruby -e 'C=`stty size`.scan(/\d+/)[1].to_i;S=["2743".to_i(16)].pack("U*");a={};puts "\033[2J";loop{a[rand(C)]=0;a.each{|x,o|;a[x]+=1;print "\033[#{o};#{x}H \033[#{a[x]};#{x}H#{S} \033[0;0H"};$stdout.flush;sleep 0.1}'
bashで頑張って、雪降らせる。
下記スクリプトを作成致しました。
上で紹介されてたruby
コマンド程は上手く雪を降らせる事が出来なかったですが、雪降ってるなーとは分かるので、ちょっと達成感。
時間が許せば、もう少し工夫して書きたかったです。
改行を変数に格納出来なかったりで苦戦しました。大した事してないんですけどね。
降らせようとした結果
#!/bin/bash
col=`tput cols`
line=`tput lines`
array=()
clear
for ((i=1; i<$line; i++)); do
newline=$newline"\n"
done
while true
do
for ((i=0; i<$line; i++)); do
for ((j=0; j<=$i; j++)); do
rand=`echo $(($RANDOM % $col))`
array+=($rand)
if [ $j -ge 0 ] ; then
lf=$'\n'
blank=`yes " " | head -n ${array[$(($i-$j))]} | tr -d '\n'`
output=""$output" "$lf" "$blank"*"
fi
done
echo "$output" ; sleep 0.3 ; echo -e $newline ; clear
output=""
done
done
path通して、コマンド叩くと雪が降りますよ。
shで降らしても、OKです。
リンク
[root@localhost ~]# ll /usr/local/bin/snow_fall
-rwxrwxrwx 1 root root 749 Nov 30 20:22 /usr/local/bin/snow_fall
[root@localhost ~]# snow_fall
書くのは楽しかったですが、仕事中に雪を降らせると少し悲しい気持ちになりました。
雪降らせてる場合じゃないと、ふと感じてしまったんですよね。
仕事に戻る事とします。
一瞬でも、癒しをくれてありがとう、、雪。