= ドット組込みコマンド
:encoding: UTF-8
:lang: ja
//:title: Yash マニュアル - ドット組込みコマンド

dfn:[ドット組込みコマンド]はテキストファイルを開いて、その内容をコマンドとして解釈し実行します。

[[syntax]]
== 構文

- +. [-AL] {{ファイル名}} [{{引数}}...]+

[[description]]
== 説明

ドットコマンドは与えられた{{ファイル名}}のファイルを開き、その内容をコマンドとして解釈し{zwsp}link:exec.html#environment[現在のコマンド実行環境]で実行します。

{{ファイル名}}に続けて{{引数}}が与えられているときは、{zwsp}link:exec.html#function[関数]の実行の時と同様に、コマンドの実行前に{{引数}}が{zwsp}link:params.html#positional[位置パラメータ]に設定され、実行後に元の位置パラメータに戻ります。

{{ファイル名}}にスラッシュ (+/+) が一つも入っていない場合は、{zwsp}link:exec.html#search[コマンドの検索]のときと同様に link:params.html#sv-path[+PATH+ 変数]の検索を行い、開くべきファイルを探します。ただしファイルは読み込み可能でさえあれば実行可能である必要はありません。検索の結果ファイルが見つかれば、そのファイルの内容を解釈・実行します。ファイルが見つからなかった場合、link:posix.html[POSIX 準拠モード]では直ちにエラーになります。POSIX 準拠モードでないときは現在の作業ディレクトリのファイルを開くことを試みます。

[[options]]
== オプション

+-A+::
+--no-alias+::
ファイルを読み込んで実行する際、エイリアス展開を行いません。

+-L+::
+--autoload+::
{{ファイル名}}がスラッシュを含んでいるかどうかにかかわらず、+PATH+ 変数の代わりに link:params.html#sv-yash_loadpath[+YASH_LOADPATH+ 変数]を検索して開くべきファイルを探します。{{ファイル名}}は現在の作業ディレクトリからの相対パス名とはみなしません。

ドットコマンドでは、最初のオペランドより後にあるコマンドライン引数は全てオペランドとして解釈します。

[[operands]]
== オペランド

{{ファイル名}}::
読み込むファイルのパス名です。

{{引数}}...::
ファイルの内容を実行している間に位置パラメータに設定する文字列です。

[[exitstatus]]
== 終了ステータス

ドットコマンドの終了ステータスは、ファイルから読み込んで実行した最後のコマンドの終了ステータスです。ファイルの内容に一つもコマンドが入っていなかったときは終了ステータスは 0 です。ファイルが見つからなかったり開けなかったりしたときは終了ステータスは非 0 です。

[[notes]]
== 補足

ドットコマンドは{zwsp}link:builtin.html#types[特殊組込みコマンド]です。

シェルが{zwsp}link:interact.html[対話モード]でないとき、読み込むべきファイルが見つからなかったり開けなかったりするとシェルは直ちに終了します。

POSIX にはオプションに関する規定はありません。よってオプションは link:posix.html[POSIX 準拠モード]では使えません。

POSIX には{{引数}}オペランドによって位置パラメータを変更できることについての規定はありません。よって POSIX 準拠モードでは{{引数}}オペランドを与えるとエラーになります。

// vim: set filetype=asciidoc expandtab:
