ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как создать пользовательское приглашение оболочки 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