hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。
07/10/2003 ふげ [長年日記]
■ [日記][Gentoo] むぅ
巡回先の日記とか読んでると,Gentoo使ってたり「こないだ入れてみた」的なことが書いてあったり「今インストール中」みたいなことが書いてあったりして面白い.たった1年ちょいでよくもこんなに普及したよなぁ.改めてすごいぞGentoo.
1年前なんか,どんなに些細なことであれ日本でGentooのこと書いてる人なんてなかのさん以外に見たことなかったのに.
■ [日記] むぅ
なにやら2chにURL貼られてるぞとへにょ氏に教えてもらう.なるほどそれでアクセスがいつもより多いのか.今見てみたらちらほらと ime.nu 経由のアクセスもあるみたい.どうもあのオマケスクリプトを便利だと紹介して頂いたようで恐縮です.
ぶっちゃけ自分じゃ使ってないんですけどね.使う場面にあまり遭遇しないもので….
■ [ニュース][英語] Google cache
I'm usually using Google's caches if search web page, because highlights are very useful. Also it always doesn't display "404 not found" so it doesn't make me angry. :-)
However, I'm annoyed that any people browse pages which were already erased because I have some reasons. Well, you may say "Don't write that make you annoy."
Umm...That's right. ;-P
■ [ソフト][日記] tDiary
結局何となくcvs版に戻す.何やってんだ俺.
ついでに,今更ながら個々の日記が \d{4}\d{2}\d{2}.html でなく ?date=\d{4}\d{2}\d{2} の形式に戻ってたことを知ったので原因を調べてたら,pluginディレクトリから html_anchor.rb が消えてた.あれー,いつの間に…?
■ [Bash][Tips] 繰り返し
「○○を繰り返し実行せよ」という処理をさせたい場合がある.そんなときに強い味方となってくれるのが while だ.
$ HOGE=1
$ while [ $HOGE -le 10 ]; do echo $HOGE; HOGE=$(($HOGE + 1)); done
HOGE=1
while [ $HOGE -le 10 ]
do
echo $HOGE
HOGE=$(($HOGE + 1))
done
また例によって上記2つは全く同じ処理を行うわけだけど,これが何を意味しているかというと,while は [ $HOGE -le 10 ] を評価して,真であれば do〜done 内の処理を行う.それが終わるとまた [ $HOGE -le 10 ] を評価して…と繰り返す.評価結果が偽であれば処理を抜けるという仕組みだ.ちなみに while によく似たものに until というものがあるが,これは while と違って評価式が偽のときに do〜done の処理を行い,真であれば while文を脱する.
ここでは [ $HOGE -le 10 ],つまり「$HOGE が10以下である」という式を評価しているので,echo $HOGE を実行した後 HOGE=$(($HOGE + 1)),つまり $HOGE に1をプラスする,という処理を繰り返していくことになる.そうすると,10がechoされた後に $HOGE の値は11になるので,次の条件式評価時に [ $HOGE -le 10 ] を満たさなくなり,そこで while文を抜けることになる.実際に処理をさせてみると…
bash$ HOGE=1
bash$ while [ $HOGE -le 10 ]; do echo $HOGE; HOGE=$(($HOGE + 1)); done
1
2
3
4
5
6
7
8
9
10
bash$
期待通りの処理をしてくれた.
もちろん評価式にはコマンドを混ぜることも可能だし,複数の条件を設けることも可能だ.
while grep hoge hoge.txt && [ $HOGE -le 10 ] || [ "${FOO}" = "hage" ]
do
echo $HOGE
HOGE=$(($HOGE + 1))
done
ちなみに read コマンドを使うと while へのパイプなんかもスムーズに行える.
$ ls
bar baz boo foo hoge teehee
$ ls | while read file; do mv "${file}" "${file}.old"; done
$ ls
bar.old baz.old boo.old foo.old hoge.old teehee.old
これが何をしているかというと,ls の出力を read が1つずつ読み取って file という変数に代入して,do〜done 内の mv でそれぞれをリネームしている.
■ [音楽][BGM] 今日のBGM
Keep It All Turning / Mind Odyssey
Primal Fear / Primal Fear