Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Не следует путать "уровень" и "переменную окружения". PROMPT_COMMAND, ровно как и PS0-PS4 - переменные окружения оболочки bash, хотя они и не устанавливаются автоматически все же во многом влияют на ход работы последней. Если объяснять на пальцах, то по принципу "переменная=<принимаемое_значение>".

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

PS0=строка
Символьная строка, выводимая интерактивными оболочками после чтения команды (но перед ее выполнением).

PS1=строка
Основная строка приглашения (по умолчанию '\s-\v\$ ').

PS2=строка
Вспомогательное приглашение, применяемое в многострочных командах (по умолчанию '>').

PS3=строка
Строка приглашения в select (по умолчанию '#?').

PS4=строка
Строка приглашения к трассировке выполняемых команд (при bash -x или set -x). Следует иметь в виду, что оболочки запущенные с правами root, не наследуют эту переменную из рабочей среды. (Значение по умолчанию '+').

Теперь о set -x. Во-первых, set -o xtrace и set -x - равнозначны и активируют режим отображения команды вместе с ее аргументами во время ее выполнения, предваряя ее значением переменной PS4. Этим, собственно, обеспечивается пошаговая трассировка сценариев в bash. Во-вторых, отладка командных сценариев - понятие абстрактное, ровно настолько, что у каждого найдутся свои контраргументы что есть "тру", а что "бэд". Словом, здесь кроме чтения встроенных манов и холостыми экспериментами сути в полной мере не передать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:56, 20-01-2020 | #2