Site icon ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Четверг, 11 декабря, 2025

Как создать пользовательское приглашение оболочки Bash

Как создать пользовательское приглашение оболочки Bash

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

В этом посте рассказывается о том, как вы можете настроить свое приглашение Bash с помощью различных переменных окружения.

 

Переменные приглашения: PROMPT_COMMAND, PROMPT_DIRTRIM

$PROMPT_COMMAND может быть необязательно установлен в качестве команды для выполнения перед печатью каждого основного приглашения ($PS1).

Для $PROMPT_DIRTRIM необязательно может быть установлено значение, большее нуля, соответствующее количеству конечных компонентов каталога, которые необходимо сохранить при расширении, \w и \W строка запроса экранируется при использовании PS переменных, удаленные символы заменяются одним многоточием (…).

 

Строковые переменные приглашения: PS0, PS1, PS2, PS3 и PS4

Переменные PS обозначают строку приглашения и используются для настройки различных сообщений с приглашением. Эти переменные расширяются с помощью определенных escape-последовательностей, см. Управление приглашением в руководстве по Bash для получения обширного списка.

 

$ PS0

Переменная $PS0 расширяется после чтения команды и перед выполнением команды в интерактивной командной строке.

[andreyex@linux ~]$ export PS0=">> "
[andreyex@linux ~]$ sleep 3
>> 
[andreyex@linux ~]$ echo "Hello"
>> Hello
[andreyex@linux ~]$ sleep 3 ; echo "Hello"
>> Hello

 

$ PS1

Переменная $PS1 является основной строкой приглашения. Она используется для определения главного приглашения консоли. Значение по умолчанию равно \s-\v\$ .

bash-5.0$ # Default prompt
bash-5.0$ export PS1="[\u@\h \W]\$  "
[andreyex@linux ~]$ # New prompt

 

$ PS2

$PS2 является вторичной строкой командной строки. Оно используется для определения продолжения приглашения консоли, когда команды передаются по нескольким строкам в интерактивной командной строке. Значение по умолчанию равно >.

[andreyex@linux ~]$ if true; then
> echo "true"
> fi
true
[andreyex@linux ~]$ export PS2="\h >> "
[andreyex@linux ~]$ if true; then
linux >> echo "true"
linux >> fi
true

 

$ PS3

Переменная $PS3 в Bash используется исключительно для приглашения цикла выбора bash для создания простых меню командной строки. Если эта переменная не задана, в командной строке select будет указано значение по умолчанию #?.

 

$ PS4

Переменная $PS4 в Bash используется для приглашения, напечатанного перед повторением командной строки, когда параметр debugging shell -x задан с помощью встроенной команды set. Значение по умолчанию равно +. Первый символ $PS4 расширенного значения копируется для каждого уровня косвенности.

[andreyex@linux ~]$ set -x
[andreyex@linux ~]$ echo "hello"
+ echo hello
hello
[andreyex@linux ~]$ set +x
+ set +x
[andreyex@linux ~]$ echo "hello"
hello
Exit mobile version