hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。
06/30/2003 資料 [長年日記]
tDiary 249日目
■ [Gentoo] パッケージ毎にuseフラグを設定できるように
そういや後輩がそんなこと言ってたっけか.確かにこれできりゃ便利かも.でもめんどいから俺はやらんだろうな.:-)
■ [Gentoo] virtual
なんか /var/cache/edb/virtuals に
sys-apps/console-tools sys-apps/kbd
なんて記述があるんだけど…コレ大丈夫なのか? 昔似たようなことやってemergeがうまく動かなくなったことがあるんだけどな.しかし当のkbdのebuildには確かにPROVIDEの記述が.うーむ.
■ [Bash][Tips] 作業の予約とか
Bash にはいくつかのメタ文字がある.代表的なのがリダイレクトやパイプだけど,もちろんその他にもいろいろと便利なものが満載だ.その中に,コマンドラインで複数のコマンドを羅列して作業を予約しておく,なんてことができる &&,||,; なんてものがある.makeを例に取ると,使い方は主に以下の通り.
$ make && echo "done."
$ make || echo "failed."
$ make clean; make
などなど.ここで && は,make が正常終了した時にのみ echo "done." を実行し,|| では逆に異常終了したときにのみ echo "failed." を実行する.; は,終了ステータスにかかわらず次のコマンドを実行する.つまるところ,$? が直前のコマンドの終了ステータスであることから,&& 処理は
$ command1; if [ $? -eq 0 ]; then command2; fi
と等価ということであり,|| 処理は
$ command1; if [ $? -ne 0 ]; then command2; fi
と等価であると言える.
もちろん,これらは全て組み合わせて使うことができる.
$ make clean && { echo "cleaned."; make; } || echo "clean failed."
こうやっておくと,make clean が正常終了した時にのみ echo "done." と make を実行し,異常終了した場合は echo "clean failed." を実行することになる.注意しなければならないのは,この場合 && の後の処理を { } で囲ってやらないと意図と違った結果になってしまうことだ.
…が,今日は時間がないので { } についてはまた今度.
はげ