У командного интерпретатора есть среда выполнения, содержащая следующие компоненты:
открытые файлы, унаследованные командным интерпретатором при вызове, с учетом изменений, вызванных перенаправлениями, переданными встроенной команде
текущий рабочий каталог, установленный командами , или , или унаследованный командным интерпретатором при вызове
маска режима создания файла, установленная с помощью команды или унаследованная от родительского процесса
текущие обработчики сигналов, установленные с помощью
параметры командного интерпретатора, установленные путем присваивания переменным или унаследованные из среды родительского процесса
функции командного интерпретатора, заданные в ходе выполнения или унаследованные из среды родительского процесса
опции, установленные при вызове (как стандартные, так и заданные явно в командной строке) или установленные с помощью комнады
опции, установленные с помощью команды
псевдонимы, заданные с помощью команды
идентификаторы различных процессов, в том числе, для фоновых заданий, значение параметра $$ и значение параметра $PPID
Когда необходимо выполнить команду, не являющуюся встроенной или функцией командного интерпретатора, она вызывается в отдельной среде выполнения, состоящей из указанных ниже компонентов. Если не указано иначе, все значения наследуются от командного интерпретатора.
открытые файлы командного интерпретатора плюс любые изменения и дополнения, заданные для команды перенаправлениями
текущий рабочий каталог
маска режима создания файлов
переменные командного интерпретатора, помеченные как экспортированные, а также переменные, экспортированные для команды и переданные в среде
наследуются установленные в родительском командном интерпретаторе обработчики сигналов, а сигналы, в нем игнорировавшиеся, также игнорируются.
Команда, вызванная в этой отдельной среде, не может повлиять на среду выполнения родительского командного интерпретатора.
Команды, результаты которых необходимо подставить, и асинхронные команды вызываются в средах порожденных командных интерпретаторов, которые совпадают со средой родительского, но обработчки сигналов устанавливаются такие, как были унаследованы родительским командным интерпретатором при вызове. Встроенные команды, вызываемые как часть конвейера, также выполняются в среде порожденного командного интерпретатора. Изменения в среде порожденного командного интерпретатора не затрагивают среду выполнения родительского.