2005年01月04日(Tue) 嵐は去ったかまだかいな [長年日記]
● この日記が見えません
今度は何だろう…。ファイルサーバーのメモリがハードウェア的に寿命になってしまったようだ、とのことでした。なるほど。
とにかく。このサイトをご利用の方には、ご不便をおかけしました。
● パッチを買うべきかチューブを買うべきか
パッチちゅうてもソフトのバグを直すデータじゃございませぬ。
自転車が週末にまたパンクしていて、昼やすみに直してきました。今回は2ヶ所。加硫剤をつけてパッチを貼って…残りがあと1枚になってしまいました。パッチを買わなくちゃ、とも思うのだけど、このパンクの頻度はなんだ。やっぱり、ずいぶん古いタイヤとチューブなのが問題なような気がします。。マウンテンバイクのくせにスリックタイヤになっているし。チューブを換えない限り、またすぐにパンクしてしまいそうだ。
そういうわけで答えはパッチもチューブも、そしてタイヤも買うべし、ということなのだけれど、はてさて、いつになることやら。
● #!/usr/bin/envって微妙に不便
バカが往くより、
なんですよねー。#!の解釈のされかたがあんまり親切じゃないのに起因してるような気がしてます。man bashより、
プログラムが #! で始まるファイルである場合、 最初の行の残りの部分はこのプログラムのインタプリタを指定します。 シェルは指定されたインタプリタをオペレーティングシステム上で実行します。 オペレーティングシステムは、この実行可能フォーマットを直接処理しません。 インタプリタに対する引き数は、 プログラムの先頭の行のインタプリタ名の後の省略可能な引き数1つと、 その後のプログラム名、 さらに (もしあれば) その後のコマンドへの引き数から構成されます。
最初の行に書けるのは、かなり限られた情報だ、というところまではわかるのですが、…。英語版のmanも読むと、どうも、インタプリタに渡される引数は、argv[1]:#!の行からインタプリタ名を取り去った残り(上記の場合は、「ruby -I..」)、argv[2]:このスクリプトのファイル名、argv[3...]:このスクリプトに渡された引数となるようです。
#!/bin/echo
してみると確かにその通りみたい。
でも、不可解なのは、#!/usr/bin/ruby
にしておくと上記のargv[1]とargv[2]がRubyに(ARGVに)見えてないように見えること…。なんで?Ruby側で何か処理してるんだろうな…。
とにかく。スクリプトの最初の行もインタラクティブな入力と同じように解析してくれればいいのにね。
最近のツッコまれどころ