Приглашение | Использование | Default value |
---|---|---|
$PS0 | Отображение информации перед выполнением команды (после нажатия клавиши Enter) в bash 4.4+ | Нет |
$PS1 | Основное приглашение к вводу в Bourne/bash | '\s-\v\$ ' |
$PS2 | Дополнительное приглашение к вводу в Bourne/bash; появляется после нажатия клавиши Enter при вводе текста в кавычках или встроенного документа. | '> ' |
$PS3 | Приглашение, используемое встроенной командой select | '#? ' |
$PS4 | Отладочный параметр bash | '+ ' |
$PROMPT_COMMAND | Команда перед $PS1 | Нет |
$PS0
Отображение информации после нажатия клавиши Enter в командной строке, но до запуска команды. Может пригодиться, например, для вывода времени перед выполнением команды:
PS0='Start: \D{%Y-%m-%d_%H:%M:%S_%Z}\n'
# Результат:
root@6938423436f9:/# export PS0='Start: \D{%Y-%m-%d_%H:%M:%S_%Z}\n'
Start: 2024-01-06_16:33:23_UTC
root@6938423436f9:/#
$PS1
Пример основного приглашения в bash, где будет содержаться полная информация, которую удобно копипастить в документацию или отчеты об ошибках:
export PS1='\n[\u@\h:T\l:L$SHLVL:C\!:J\j:\D{%Y-%m-%d_%H:%M:%S_%Z}]\n$PWD\$ '
# Результат:
[root@e65b45c6ef2d:T0:L1:C2:J0:2024-01-06_16:28:21_UTC]
/#
$PS4
Отладочный префикс, который выводится, когда активна настройка set -x
.
Первый символ дублируется по мере необходимости для отображения уровня вложенности оболочки, поэтому для большей ясности лучше юзать символ + (который и так по дефолту стоит).
Пример такого информативного префикса:
export PS4='+xtrace $BASH_SOURCE:$LINENO:$FUNCNAME: '
$PROMPT_COMMAND
Используется для самых разных вещей, таких как обновление заголовка окна для терминалов с графическим интерфейсом, отображение динамических сведений о среде (например, текущая ветка git) или даже для примитивной и небезопасной регистрации.
Пример для журналирования:
export PROMPT_COMMAND='logger -p local1.notice -t "bashlog[$$];" "SSH=$SSH_CONNECTION; USER=$USER; PATH=$PWD; COMMAND=$(fc -ln -1)"'
Соус: Книга Идиомы Bash → Глава 10. Помимо идиом: работа с bash → Приглашения к вводу