: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>