ボンジュール・マドモアゼル

本サイトの情報は自己責任にてご利用下さい。

[UNIXプログラミング環境] Unix と Echo

 
石田晴久氏訳「UNIXプログラミング言語」から。
123頁、Doug McIlroy の何やらわかりにくい童話を自分なりに解釈してみた。
        (中略)     彼女(UNIX)の echo(こだま)をたいへん喜びました.しかし、自分たちの叫び声をひどくねじまげて自然のなかにこだまさせる岩や木々と同じで、言われたことと全く同じように返事できないことを残念に思いました.そこで従順な UNIXは、言われた通りのことを完璧にechoしてほしい(121頁 要求したものだけを出力する)という願いを受け入れました.(ここで -n オプションが追加される)あるとき、(ここから、「一切の引数が与えられなかったときにecho は何をするべきか」の問題に移る)気の短い若者がUNIXに"無をechoしてくれ"と命じたので、(気が短いから、-n は指定せず echo のみ指定)UNIXは律儀に口を開け、無をechoし、そしてまた口を閉じたのでした.(最初は空行を印刷する仕様) 若者がこう命じました."そうやって口を開けるのには一体どういう意味があるんだ? これからは無をechoするように言われたときには初めから口を開けないようにしてくれ." UNIXはこれに従いました.(全く何もしない仕様に変更.122頁の本文で「現在の echo は空行を1行表示するようになっていたが、過去の版ではそうではなく、」に注意) "でも僕には、たとえ無をechoするときにも完全な動作をしてほしい." (-nオプションなしでのデフォルトで改行が追加される仕様と整合性を保ってほしい) 神経質な若者が訴えました."口を閉じていて完全なechoはできない." どちらの若者も怒らせたくなかったので、UNIXは、短期な若者と神経質な若者に対してそれぞれ異なった無を喋るのを承知しました.UNIXは神経質な若者のための無を "\n" と呼ぶことにしました. けれども、それでもなお、UNIXが "\n" というときには実際には無だけを喋っているのではなかったので、口を 2回開ける必要があったのです.(echo '\n' とすると引数があるので自動的に改行が追加され 2行になる)1度は "\n" を言うため、もう1度は無を言うためです.ですから、その神経質な若者を喜ばせることはできませんでした.そこで若者は直ちに言いました. "僕にはその\nは完璧な無のように聞こえる.だけどその2番目のやつで台なしだ.どちらか一方をやめてほしい." 若者を怒らせるのを潔しとしなかったUNIXは、幾つかの echo を取り消すことを承知し、取消しの命令を "\c" と呼びました.こうして神経質な若者は、 "\n" と "\c" を一緒に要求すれば、完全な無の echo を聞けるようになったはずでした.(つまりは、echo '\n\c' とする)
<<const 修飾子 | ホーム | OSの基礎と応用>>

コメント

コメントの投稿

管理者にだけ表示を許可する

画像の文字を半角数字で下記ボックスに記入ください。
文字が読みにくい場合はブラウザの更新をすると新しい文字列が表示されます。