hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。
07/05/2003 なmあzみだぶつ [長年日記]
■ [本] Stopping Spam
こんな本がオライリーから出てたとは.
■ [音楽] マリオ
俺の着メロがコンプされてら.…いやどっちかってーと俺がマリオの音楽コンプしたのか.どっちでもいいや.それにしても,このアンカーの「smbros」って狙ってんのかな? SMブラザーズ.
しかし魂斗羅は懐かしすぎる.
from 今日のなんでやねん
■ [ニュース] ハードウェア改造不要のXbox Linux起動方法が公開される
ありゃま,結局MSからは良い返答もらえなかったのね.当り前だけど.
■ [ソフト] UTF-8 decoding error
何やら ninix-aya の CVS版が,天気予報や bottle からの情報を喋ろうとすると UTF-8 decoding error: invalid data とか吐いて死亡するようになった.内部の文字コードが変わったとかかなぁ?
■ [小ネタ] 遊覧船がホットスポットになると?
どわぁ! 見覚えのある風景が….
■ [ソフト] tDiary
久しぶりに cvs up したら挙動が怪しくなってら.00default.rb がエラー出してたので古いやつに差し替えたら動いた.でもupdate画面の「登録」ボタンの横に空白のボタンが…これ何?
あ,よく見たらプレビューとか再編集の画面がなくなってら.うはー.やっぱ俺みたいなヘタレはリリース版使った方が無難かもなぁ.
■ [Bash][Tips] もしも…
Bash はプログラム言語の三つの制御構造を満たしている.三つの制御構造というのは
- 逐次実行
- 条件分岐
- 繰り返し構造
の三つだ.逐次実行とは上から順番に処理を実行していくというルールで,条件分岐は「もし○○が××なら△△を実行する」というような命令,繰り返し構造は「□□が▽▽を満たすようになるまで◎◎をし続けろ」というような命令のことだ.
で,今回のはこの条件分岐.これ Bash ではこれを if 〜 then 〜 else 〜 fi で表現する.簡単な例を見ると,次のような感じだ.
$ if [ "${HOGE}" = "hoge" ]; then echo '$HOGE is hoge'; else echo '$HOGE is not hoge'; fi
if [ "${HOGE}" = "hoge" ]
then
echo '$HOGE is hoge'
else
echo '$HOGE is not hoge'
fi
上記2つの例は全く同じものだけど,さてこれが何を意味するかというと,$HOGE に hoge という値が入っていた場合に echo '$HOGE is hoge' を実行し,そうでない場合は echo '$HOGE is not hoge' を実行する.また,else以下の文は省略可能で,いらないならいらないで書かなくても良い.
if [ "${HOGE}" = "hoge" ]
then
echo '$HOGE is hoge'
fi
条件を複数設けたい場合は elif 〜 then 〜 を繰り返す.
if [ "${HOGE}" = "hoge" ]
then
echo '$HOGE is hoge'
elif [ "${HOGE}" = "foo" ]
then
echo '$HOGE is foo'
elif [ "${HOGE}" = "bar" ]
then
echo '$HOGE is bar'
else
echo '$HOGE is not hoge'
fi
これで,$HOGE の値が hoge であれば,foo であれば,bar であれば…という感じに順番に条件を評価していくことができる.また,if文ではどれかの条件がヒットした段階でその if 〜 fi の文を抜ける.
ちなみにコマンドが返す値を評価して,結果に応じた処理をさせる,なんて場合にも使える.
$ cat > hoge.txt
foo
bar
baz
hoge
boo
huga
piyo
hemo
$ if grep hoge hoge.txt > /dev/null ; then echo "hoge in hoge.txt"; fi
hoge in hoge.txt
$ if grep buge hoge.txt > /dev/null ; then echo "hoge in hoge.txt"; fi
$
あと,意外と知られていない(使われてないだけ?)使い方として,こんなのもある.
$ HOGE=1
$ FOO=5
$ if (($HOGE < $FOO)); then echo "$FOO is bigger than $HOGE."; fi
5 is bigger than 1.
つまり (( )) によって算術評価を行い,結果を if に評価させる.
しかし if はほとんどの場合*1,&& や || で置き換え可能なので,そっちを使う方が楽かも知れない.下記のような書き方ができるからだ(シャレじゃないぞ).
$ [ "${HOGE}" = "hoge" ] && echo '$HOGE is hoge' || echo '$HOGE is not hoge'
$ grep hoge hoge.txt > /dev/null && echo "hoge in hoge.txt"
$ (($HOGE < $FOO)) && echo "$FOO is bigger than $HOGE"
*1 elifを使わない場合のこと.
CVSのninix-ayaは本体の変更にsstp.pyが追いついていない状況です.
なるほど,そうだったんですか.確かに文字コード変換周りがコメントアウトされたりしてますね.
今更ですが。
ネタにして頂けるのはうれしいんですが、もすこししらべよーね。
該当ゲームのページに行けば、こだわりの描写ってことで、作画資料なのは一発でわかると思うんですが。。。。
す,すみません.すごい気合いの入り様ですね….