08/04/05 18:00:09
>>39
まず、リダイレクトの < や > は矢印じゃない。その誤解を解け。
cat A < B というのは、BをAにコピーするんじゃない。
「< B」の部分がセットで、Bというファイルを標準入力にすると言う意味。
「cat A」の部分だけがコマンドライン本体で、Aだけがcatの引数。
「< B」の部分はcatの引数ではない。
次はcatコマンドの仕様を理解する必要がある。
catは、引数にファイルがひとつもなければ標準入力を読むが、
引数にファイルがひとつでも付けられると、標準入力が何にリダイレクトされてようが
無視して読み込まない。この例では、「< B」の部分がすべて無視されるというわけ。
その結果、「cat A」だけが実行されて、それが画面に出るはず。
ちなみに、「cat A < B」は、「cat < B A」と書いても同じ意味。