Приглашения в bash

При интерактивной работе, bash отображает основное приглашение PS1 когда он готов считать команду и вторичное приглашение PS2, когда ему необходимо больше входящей информации для выполнения команды. Командный интерпритатор bash позволяет настраивать строки этих подсказок путём введения специальных символов маскируемых обратной косой чертой, которые декодируются следующим образом.

\a символы сигнала ASCII (07)

\d дата в формате «День недели, месяц, дата» (например «Пт Май 26»)

\D{format} формат передается strftime(3) и результат выставляется в строку приглашения: пустой результат в формате локального представления времени. Необходимы фигурные скобки

\e ASCII управляющий символ (033)

\h имя хоста до первого символа ‘.

\H имя хоста

\j количество заданий в настоящее время управляемых оболочкой shell

\l базовое имя устройства имя терминала оболочки

\n перевод строки

\r возврат каретки

\s имя оболочки, базовое имя $0(часть полного имени следующий за последним слеш)

\t текущее время в 24-часовом формате ЧЧ:ММ:СС

\T текущее время в 12-часовом формате ЧЧ:ММ:СС

\@ текущее время в 12-часовом формате am/pm

\A текущее время в 24-часовом формате ЧЧ:ММ

\u имя текущего пользователя

\v версия bash(например 2.00)

\V версия релиза bash, версия + уровень патча(например, 2.00.0)

\w текущий рабочий каталог, $HOME сокращенно тильда(использует значение переменной PROMPT_DIRTRIM)

\W базовое имя текущего рабочего каталога, $HOME сокращенно тильда

\! номер данной команды в истории

\# номер данной команды

\$ если эффективный UID равен 0 то #, иначе $

\nnn символ соответствующий восьмеричному числу nnn

\\ обратная косая черта

\[ начало последовательности непечатанных символов, которые могут быть использованы для внедрения в управление терминалом в приглашении

\] конец последовательности непечатных символов

Номер команды и номер команды в истории, как правило отличаются, номер в истории вяляется номером его положения в списке истории команд, которая может включать команды прочитанные из файла истории(Историю команд я буду описывать в дальнейшем), в то время как номер команды является положением в последовательности команд выполняемых текущий сеанс работы с оболочкой shell. После того как строка декодируется в ней выполняется расширения с помощью параметров расширений, подстановка команд, арифметическое расширение и удаление кавычек, в зависимости от значения опции оболочки promptvars(детальней будет писаться в одной из будущих статей в описании встроенной команды shopt при описании ВСТРОЕННЫХ КОМАНД ИНТЕРПРИТАТОРА)

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

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