Приглашение командной строки — это место, где вы вводите команды на своем терминале в интерактивном сеансе командной строки. Приглашение можно настроить так, чтобы оно отображало полезную информацию для пользователя, такую как имя хоста, текущий рабочий каталог, дата, имя пользователя и т.д. Вы можете изменить приглашение bash для отображения другой информации или даже изменить цвета текста в части или во всем приглашении.
В этом посте рассказывается о том, как вы можете настроить свое приглашение Bash с помощью различных переменных окружения.
$PROMPT_COMMAND может быть необязательно установлен в качестве команды для выполнения перед печатью каждого основного приглашения ($PS1).
Для $PROMPT_DIRTRIM необязательно может быть установлено значение, большее нуля, соответствующее количеству конечных компонентов каталога, которые необходимо сохранить при расширении, \w и \W строка запроса экранируется при использовании PS переменных, удаленные символы заменяются одним многоточием (…).
Переменные PS обозначают строку приглашения и используются для настройки различных сообщений с приглашением. Эти переменные расширяются с помощью определенных escape-последовательностей, см. Управление приглашением в руководстве по Bash для получения обширного списка.
Переменная $PS0 расширяется после чтения команды и перед выполнением команды в интерактивной командной строке.
[andreyex@linux ~]$ export PS0=">> " [andreyex@linux ~]$ sleep 3 >> [andreyex@linux ~]$ echo "Hello" >> Hello [andreyex@linux ~]$ sleep 3 ; echo "Hello" >> Hello
Переменная $PS1 является основной строкой приглашения. Она используется для определения главного приглашения консоли. Значение по умолчанию равно \s-\v\$ .
bash-5.0$ # Default prompt bash-5.0$ export PS1="[\u@\h \W]\$ " [andreyex@linux ~]$ # New prompt
$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 в Bash используется исключительно для приглашения цикла выбора bash для создания простых меню командной строки. Если эта переменная не задана, в командной строке select будет указано значение по умолчанию #?.
Переменная $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