Unix Man (Справочное руководство)


CSH(1) - часть 19


Выполнение Невстроенных Команд


При обнаружении команды, которая не является встроенной, но должна быть выполнена, интерпретатор shell пытается выполнить эту команду через команду . Каждое слово в переменной path задает имя каталога, из которого интерпретатор shell будет пытаться выполнить эту команду. Если не заданы ни опция -c, ни опция -t, то интерпретатор shell будет выполнять хэширование таких имен в этих каталогах во внутреннюю таблицу таким образом, что он будет пытаться применить exec только в каталоге, в котором, возможно, находится эта команда. Это повышает скорость обнаружения команды в случае, когда в пути поиска представлено большое количество каталогов. Если этот механизм будет выключен (посредством команды unhash), или если интерпретатору shell будет задан с аргументами -c или -t, и, во всяком случае, для каждого каталога, являющего составляющей переменной path, которая не начинается с символа /, интерпретатор shell выполняет конкатенацию с именем заданной команды, чтобы сформировать полное обозначение пути к файлу, который он затем пытается выполнить.

Команды, заключенные в круглые скобки, всегда выполняются в подмножестве интерпретатора subshell. Так, команда (cd; pwd) ; pwd печатает каталог home; оставляя при этом Вас там, где Вы были (отображая это место после каталога home), в то время как команда cd ; pwd оставляет Вас в этом входном каталоге home. Заключенные в круглые скобки команды довольно часто используются для предотвращения воздействие текущего интерпретатора shell на команду cd.

Если файл имеет разрешения на выполнение, но не является двоичным выполняемым файлом в данной системе, то считается, что этот файл содержит команды интерпретатора shell, и для того, чтобы считать его, подгружается новый интерпретатор shell.

Если для shell существует псевдоним, то, чтобы сформировать команду интерпретатора shell, для списка аргументов подготавливаются слова псевдонима. Первое слово псевдонима должно быть полным обозначением пути интерпретатора shell (например, $shell). Заметим, что это специальный, встречающийся позже случай подстановки псевдонима, и допускает только слова, которые должны быть подготовлены для списка аргументов, без модификации.

Обработка Списка Аргументов





Начало  Назад  Вперед



Книжный магазин