PATH (変数)
DOS や OS/2、MS WindowsなどのOSでは、%PATH%変数に対し一つ以上のディレクトリ名を、区切り文字にセミコロン(;)を用いて列挙した文字列が指定される。
通常、Windows のシステムディレクトリ(通常はC:\WINDOWS\system32)は先頭に置かれ、続いて多くのインストールされたソフトウェア用のディレクトリが列挙される(全てではない)。コマンドプロンプトからの起動を想定していない多くのプログラムのディレクトリは、%PATH%に含まれない。プログラムの中には、インストールの際に自分のディレクトリを%PATH%変数の先頭に置き、名前検索のスピードアップやOSのコマンドの無効化を意図するものもあった。一般的にDOSが利用されていた時代には、慣習的にAUTOEXEC.BATに対してPATH {program directory};%PATH%やSET PATH={program directory};%PATH%といった行が追記されていた。
POSIX とUNIX系OSでは、$PATH変数に対し一つ以上のディレクトリ名を、区切り文字にコロン(:)を用いて列挙した文字列が指定される。 $PATH文字列内のディレクトリ名に対してはエスケープ文字の処理が行われないため、その名前にコロンを含めることはできない。
ディレクトリ/bin、/usr/bin、usr/local/binは、通常ほとんどのユーザーの$PATHに含まれている(実装ごとの差異は存在する)。スーパーユーザーの場合、システム管理用コマンドを簡便に実行できるよう/sbinと/usr/sbinが含まれている。往々にしてユーザーの手によって、カレントディレクトリを示すドット(.)が挿入される。これにより、カレントディレクトリに存在するプログラムを、直接実行できるようになる。 システムアドミニストレーターは、例えばカレントディレクトリ内に何らかの手段で仕込まれた悪意あるスクリプトの実行を防ぐ目的で、$PATH内へのドットの挿入を禁止することがある。この場合にプログラムをコマンドライン上から実行するには、絶対パス(/home/userjoe/bin/script.sh)か相対パス(./script.sh)を用いて入力する必要がある。
ユーザーによる直接入力や、何らかのプログラムからexecシステムコールによってコマンド名が指定された場合、システムは$PATH内に記載されたディレクトリを、先頭から順番に走査して入力された名前に合致するファイル名を検索する。ファイルが見つかれば、コマンドシェルもしくはそのコマンドをコールしたプログラムの子プロセスとして、そのプログラムは実行される。