В предыдущем разделе говорилось о том, как программные файлы awk могут быть названы в командной строке с помощью параметра `-f'. В большинстве реализаций awk можно указать точный путь к каждому программному файлу, когда он не лежит в текущем каталоге. Но в gawk, если имя файла, указанного параметром `-f', не содержит `/', то gawk просматривает список каталогов (называемый search path) один за другим, отыскивая файл с указанным именем. search path есть цепочка, состоящая из имен каталогов, разделенных двоеточиями. gawk получает путь к ней из переменной окружения AWKPATH. Если этой переменной нет, то gawk использует путь по умолчанию, который есть `.:/usr/local/share/awk'. *2* (Программы, написанные для использования системным администратором, должны использовать переменную AWKPATH, которая не содержит текущий каталог, `.'.)
Возможность поиска пути особенно удобна для построения библиотек полезных функций awk. Библиотечные файлы могут быть помещены в стандартный каталог на пути по умолчанию и затем указаны в командной строке коротким файловым именем. Иначе для каждого файла нужно будет указывать полное файловое имя.
Используя оба параметра, `--source' и `-f', ваша awk-программа в командной строке может использовать средства файловой библиотеки awk. См. Главу 15 [Библиотека функций awk], стр. 169.
2 Ваша версия gawk может использовать каталог, отличный от `/usr/local/share/awk'; это зависит от того, как gawk был построен и установлен. Фактический каталог будет значением `$(datadir)', генерированным, когда gawk конфигурировалась. Вероятно, вам не стоит заботиться об этом.
Поиск пути не производится, если gawk работает в режиме совместимости. Это также верно для обоих параметров `--traditional' и `--posix'. См. раздел 14.1 [Параметры командной строки], стр. 161.
ЗАМЕЧАНИЕ: если вы хотите, чтобы находились файлы из текущего каталога, вы должны включить текущий каталог в путь поиска, либо включив явно `.' в путь, либо написав нулевой вход в путь. (Нулевой вход указывается посредством начала или окончания пути двоеточием, или помещением двух двоеточий подряд (`::').) Если текущий каталог не включен в путь поиска, то файлы в текущем каталоге не будут найдены. Такой механизм поиска идентичен оболочечному.
Начиная с версии 3.0, если AWKPATH не определен в окружении, gawk поместит свой путь по умолчанию в ENVIRON["AWKPATH"]. Это позволяет легко определить фактический путь поиска, используемый gawk.