Поведение интерактивной оболочки
При интерактивном запуске оболочка изменяет свое поведение несколькими способами.
- Bash считывает и выполняет файлы запуска, как описано в разделе Файлы запуска Bash.
- Управление заданиями (см. раздел Управление заданиями) включено по умолчанию. Когда действует управление заданиями, Bash игнорирует сигналы управления заданиями, генерируемые клавиатурой:
SIGTTIN,SIGTTOUиSIGTSTP. - Перед выводом основного приглашения,
$PS1, Bash выполняет в качестве команд значения установленных элементов переменной массиваPROMPT_COMMAND(см. раздел Переменные Bash). - Перед считыванием первой строки команды Bash раскрывает и отображает
PS1, а перед считыванием второй и последующих строк многострочной команды — раскрывает и отображаетPS2. После считывания команды, но перед ее выполнением Bash раскрывает и отображаетPS0. Полный список управляющих последовательностей строк приглашения см. в разделе Управление приглашением. - Для считывания команд с терминала пользователя Bash использует Readline (см. раздел Редактирование командной строки).
- При считывании команды Bash проверяет значение параметра
ignoreeof, чтобыset -o, вместо того чтобы немедленно завершить работу при полученииEOFиз стандартного ввода (см. раздел Встроенная команда set). - По умолчанию Bash включает историю команд (см. раздел Средства работы с историей Bash) и подстановку истории (см. раздел Подстановка истории). При завершении работы оболочки с включенной историей Bash сохраняет историю команд в файл, имя которого задано значением
$HISTFILE. - По умолчанию выполняется подстановка псевдонимов (см. раздел Псевдонимы).
- Если обработчики сигналов не заданы, Bash игнорирует
SIGTERM(см. раздел Сигналы). - Если обработчики сигналов не заданы,
SIGINTперехватывается и обрабатывается (см. раздел Сигналы).SIGINTпрерывает выполнение некоторых встроенных команд оболочки. - При завершении интерактивная оболочка входа отправляет
SIGHUPвсем заданиям, если включен параметр оболочкиhuponexit(см. раздел Сигналы). - Параметр -n не действует ни при запуске, ни при использовании команды «set -n» (см. раздел Встроенная команда set).
- Bash будет периодически проверять наличие почты в зависимости от значений переменных оболочки
MAIL,MAILPATHиMAILCHECK(см. раздел Переменные Bash). - После включения параметра «set -u» оболочка не будет завершать работу из-за ошибок раскрытия, вызванных обращением к неопределенным переменным оболочки (см. раздел Встроенная команда set).
- Оболочка не будет завершать работу из-за ошибок раскрытия, вызванных тем, что var не задана или имеет значение null в раскрытиях
${var:?word}(см. раздел Раскрытие параметров оболочки). - Ошибки перенаправления, возникающие во встроенных командах оболочки, не приведут к завершению работы оболочки.
- В режиме POSIX встроенная специальная команда, возвращающая код ошибки, не приведет к завершению работы оболочки (см. раздел Bash и POSIX).
- Сбой
execне приведет к завершению работы оболочки (см. раздел Встроенные команды оболочки Bourne). - Синтаксические ошибки анализатора не приведут к завершению работы оболочки.
- Если включен параметр оболочки
cdspell, оболочка попытается исправить простые опечатки в аргументах — именах каталогов — для встроенной командыcd(см. описание параметраcdspellвстроенной командыshoptв разделе Встроенная команда shopt). Параметрcdspellдействует только в интерактивных оболочках. - Оболочка проверит значение переменной
TMOUTи завершит работу, если команда не будет введена в течение указанного числа секунд после вывода$PS1(см. раздел Переменные Bash).
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/Interactive-Shell-Behavior.html