Настройка подсказки Bash: методы использования и настройки переменных подсказки

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

Вот несколько способов настройки и использования переменных подсказки в Bash:

  1. Переменная PS1:
    Переменная PS1 является основной переменной подсказки. Он определяет формат основной командной строки. Вы можете установить его в файле запуска оболочки, например ~/.bashrc или ~/.bash_profile. Например, чтобы в командной строке отображался текущий рабочий каталог и имя пользователя, вы можете установить PS1 следующим образом:

    export PS1='\u@\h:\w\$ '
  2. Переменная PS2:
    Переменная PS2 является вторичной переменной подсказки. Он определяет формат дополнительной командной строки, которая отображается, когда команда занимает несколько строк. Вы можете установить его аналогично PS1.

  3. Другие переменные подсказки.
    Bash предоставляет дополнительные переменные подсказки, такие как PS3 и PS4, которые используются в определенных контекстах, таких как операторы выбора и отладка. Их можно настроить аналогично PS1 и PS2.

  4. Escape-последовательности ANSI:
    Escape-последовательности ANSI — это специальные последовательности символов, которые можно использовать для добавления цветов и форматирования в приглашение. Например, вы можете изменить цвет подсказки или сделать ее жирным шрифтом. Вот пример, в котором в приглашении указывается зеленое имя пользователя и синий рабочий каталог:

    export PS1='\[\e[32m\]\u\[\e[0m\]@\[\e[34m\]\w\[\e[0m\]\$ '
  5. Подстановка команд.
    Вы можете использовать подстановку команд, чтобы включить вывод команды в приглашение. Например, чтобы отобразить текущую дату и время в командной строке, вы можете использовать следующую подстановку команд:

    export PS1='\u@\h [\$(date "+%Y-%m-%d %H:%M:%S")] \$ '
  6. Динамическая настройка переменных подсказки.
    Вы можете динамически настраивать переменные подсказки, определяя функции. Эти функции оцениваются каждый раз, когда отображается приглашение. Это позволяет вам включать в приглашение динамическую информацию. Например, вы можете создать функцию, отображающую количество файлов в текущем каталоге:

    function custom_prompt {
       PS1="$(ls -1 | wc -l) files in current directory \$ "
    }
    export PROMPT_COMMAND=custom_prompt