Поведение интерактивной оболочки
При работе оболочки в интерактивном режиме ее поведение меняется несколькими способами.
- Скрипты запуска читаются и выполняются, как описано в Файлах запуска Bash.
- Управление заданиями (см. Управление заданиями) включено по умолчанию. При включенном управлении заданиями Bash игнорирует сигналы управления заданиями, генерируемые клавиатурой
SIGTTIN,SIGTTOU, иSIGTSTP. - Bash расширяет и отображает
PS1перед чтением первой строки команды, и расширяет и отображаетPS2перед чтением второй и последующих строк многострочной команды. Bash расширяет и отображаетPS0после прочтения команды, но перед ее выполнением. Полный список escape-последовательностей для строк приглашения см. в Управлении приглашением. - Bash выполняет значения элементов массива
PROMPT_COMMANDкак команды перед выводом основного приглашения$PS1(см. Переменные Bash). - Для чтения команд с терминала пользователя используется Readline (см. Редактирование командной строки).
- Bash проверяет значение опции
ignoreeofдляset -oвместо немедленного выхода, когда получаетEOFна стандартный ввод при чтении команды (см. Встроенное задание Set). - История команд (см. Средства истории Bash) и расширение истории (см. Взаимодействие с историей) включены по умолчанию. Bash сохранит историю команд в файл, имя которого
$HISTFILE, при выходе оболочки с включенной историей. - Расширение псевдонимов (см. Псевдонимы) выполняется по умолчанию.
- При отсутствии ловушек Bash игнорирует
SIGTERM(см. Сигналы). - При отсутствии ловушек
SIGINTперехватывается и обрабатывается (см. Сигналы).SIGINTпрервет некоторые встроенные команды оболочки. - Интерактивная оболочка входа отправляет
SIGHUPвсем заданиям при выходе, если опцияhuponexitоболочки включена (см. Сигналы). - Опция вызова -n игнорируется, и «set -n» не имеет эффекта (см. Встроенное задание Set).
- Bash будет периодически проверять наличие почты, в зависимости от значений переменных оболочки
MAIL,MAILPATH, иMAILCHECK(см. Переменные Bash). - Ошибки расширения из-за ссылок на неинициализированные переменные оболочки после включения «set -u» не приведут к выходу оболочки (см. Встроенное задание Set).
- Оболочка не выйдет при ошибках расширения, вызванных тем, что var не задано или равно нулю в расширениях
${var:?word}(см. Расширение параметров оболочки). - Ошибки перенаправления, встреченные встроенными командами оболочки, не приведут к выходу оболочки.
- При работе в режиме POSIX специальное встроенное задание, возвращающее код ошибки, не вызовет выход оболочки (см. Режим POSIX Bash).
- Неудачное выполнение
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