nixhacks.net/content/bash_prompt.rst
2022-10-21 22:29:23 +03:00

52 lines
2.2 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:title: Функциональный и простой Bash prompt
:date: 10 Jul 22
====================================
Функциональный и простой Bash prompt
====================================
О промптинге в Bash написано очень много, в этой заметке я просто покажу
лаконичный и функциональный вариант приглашения командной строки.
Вот фрагмент из моего **~/.bashrc**:
.. code-block:: shell
# Command line prompt
# Print a non-zero exit code
__exit_code_ps1() {
if [ "$1" -ne 0 ]; then
echo "$1 "
fi
}
PS1='\[\033[0;92m\]\w \[\033[0;31m\]$(__exit_code_ps1 $?)\[\033[0;15m\]\$ '
# Git prompt
# See /usr/share/git/completion/git-prompt.sh or download from:
# https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh
if [ -f /usr/share/git/completion/git-prompt.sh ]; then
. /usr/share/git/completion/git-prompt.sh
GIT_PS1_SHOWDIRTYSTATE=1
PS1='\[\033[0;96m\]$(__git_ps1 "(%s) ")\[\033[0;92m\]\w \[\033[0;31m\]$(__exit_code_ps1 $?)\[\033[0;15m\]\$ '
fi
На GitHub можно найти много всяких скриптов или даже целых "фремворков" типа
`этого`_ или `отдельные скрипты`_ для Git. Однако, скрипт для PS1 и так
`поставляется`_ в пакете Git.
Помимо **git-prompt.sh** я использую функцию ``__exit_code_ps1()``, которая
просто печатает число, если оно не равно нулю. Это очень удобно — всегда
видишь код выхода команды. Порой это очень помогает при отладке скриптов.
В итоге всё это дело у меня выглядит вот так:
.. image:: https://i.nxhs.cloud/ovD.png
.. Links
.. _этого: https://github.com/ohmybash/oh-my-bash
.. _отдельные скрипты: https://github.com/magicmonty/bash-git-prompt
.. _поставляется: https://github.com/git/git/tree/master/contrib/completion>