宿題 2002.4.13 解答例


内容

カレントディレクトリ (作業している場所) に次の3つのファイルのみがあると する.

echo hello world

ターミナルで次の操作を行ってみる.

$ *

表示される結果について,なぜそうなるのかを説明する文章をメールで提出する こと.(ヒントは教科書のp.38とp.42)


解答例

*は任意の文字の0回以上の繰り返しを意味するワイルドカードであるのですべて の文字列に「マッチ」する.ディレクトリ内でコマンドプロンプトに続けて入力 した場合には,ディレクトリ内のドットファイルを除くすべてのファイルにマッ チするため,シェルの展開機能からアルファベット順 (正確には文字コード順) にファイル名を並べたものになる.

今の場合は,

echo hello world

の3つのファイルだけがあるので,

$ *

$ echo hello world

と同じ意味になる.先頭の echo は引数をそのまま標準出力に表示す るコマンドであるので,コマンドの出力結果は引数である

hello world

となる.この例は,たままた先頭のファイルがコマンドと一致し,しかも,引数 を表示するだけの単純なものであったが,先頭のファイルがコマンド名と同じで なければエラーが表示される.


Back