2.6 コマンドラインでの入力ファイルの指定

コマンドラインに残った引数は、入力ファイル名として扱われます。名前がなければ、標準入力を読みます。ファイル名-は標準入力を意味します。入力ファイル名を「.m4」で終えるのが慣例ですが、必須ではありません。

入力ファイルは指定順に読みます。標準入力は複数回読めるので、ファイル名-はコマンドラインに複数回指定できます。これは、端末やその他の特殊な種類のファイルから入力する場合に違いをもたらします。引数の収集中、コメントの途中、引用文字列の途中で入力ファイルが終わるとエラーになります。

オプション--define(-D)、--undefine(-U)、--synclines(-s)、--trace(-t)は、コマンドラインでその前に現れたすべてのファイルからの入力を処理した後に初めて有効になります。たとえば、ファイルfooの内容が次のとおりだとします。

$ cat foo
bar

すると、fooを複数回使用する間に、テキスト「bar」を再定義できます。

$ m4 -Dbar=hello foo -Dbar=world foo
⇒hello
⇒world

どの入力ファイルもm4exitを呼び出さなかった場合(m4からの終了を参照)、m4の終了ステータスは、成功なら0、一般的な失敗(入力ファイルの読込時の問題など)なら1、版の不一致なら63です(凍結ファイルの使用を参照)。

名前が-で始まるファイルを読む必要がある場合は、「./-file」のように指定するか、--でオプションの終わりを示せます。