Среда выполнения команд в shell

Shell имеет среду выполнения которая состоит из следующего:

Открытых файлов, унаследованных командным интерпретатором shell при вызове с поправкой на перенаправление подаваемого встроенной командой exec.

Текущий рабочий каталог установленный для «cd», «pushd», или popd, либо же наследуемый командный интерпретатором shell при вызове.

Фаил создаёт режим маски как установленный umask или наследуемый из родительской оболочки shell.

Текущий traps установленный trap.

Параметры shell оболочки которые установлены присвоенные значения переменной или с set, или наследуются из родительской shell оболочки в текущую окружающую среду.

Shell функции определяются во время исполнения или наследуются из родительской shell оболочки в текущую рабочую среду.

Опции включаются при вызове (либо по умолчанию, или с аргументами командной строки) или set.

Опции включённые в shopt.

Псевдонимы shell «aliases» определённые с псевдонимами «alias».

Различные идентификаторы процессов «IDs», включая фоновые задания, значения «$$» и значения «PPID».

Когда простая команда отличается от встроенных shell команд или shell функций выполняется, она вызывается в отдельной среде выполнения, которая состоит из следующего. Если не указано другое, значения наследуются из оболочки shell.

Открытые файлы shell оболочки, так же как и любые изменения и дополнения указывают перенаправления в команду.

Текущий рабочий каталог.

Файл создаёт режим маски.

Shell переменные и функции помеченные на экспорт, а также экспортируемые переменные для команд, принятых в среду.

Traps перехватывает оболочку shell сбрасывает значение к унаследованному из родительской оболочки и traps ignored игнорирует shell.

Команда вызывающаяся в этой отдельной среде никак не может повлиять на среду исполняющей оболочки.

Подстановка команд, команды группировки в скобки и асинхронные команды, вызываются в подоболочке среды, являющейся дубликатом shell оболочки, за исключением того что traps перехватывает shell сбрасываемого значения из родительской shell оболочки при вызове. Встроенные команды, которые вызываются как часть перенаправления, также выполняются в среде подоболочки. Изменения внесённые в порождённой подоболочке командного интерпретатора не могут повлиять на среду исполняемой оболочки.

Подоболочки порождают выполнение команды замены наследуемого значения опции «-e» из родительской оболочки. Когда вы находитесь не в posix режиме, bash очищает опцию «-e» в таких подоболочках.

Если команда следует за «&» и управлением заданиями и не является активной по умолчанию выводом для команды является пустой файл /dev/null. В ином случае вызванная команда наследует дескрипторы файлов вызывающих shell изменённой перенаправлением.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *