Bash Prompt, проверенный временем

November 6, 2014

Подозреваю, что многие меняли внешний вид строки приглашения (так же переводится prompt, правильно?) в консоли много-много раз.

После долгих экспериментов я остановился на таком:

# http://stackoverflow.com/a/1862762
function timer_start {
  timer=${timer:-$SECONDS}
}
function timer_stop {
  timer_show=$(($SECONDS - $timer))
  unset timer
}
trap 'timer_start' DEBUG
PROMPT_COMMAND=${PROMPT_COMMAND}timer_stop;

## http://railstips.org/blog/archives/2009/02/02/bedazzle-your-bash-prompt-with-git-info/
function parse_git_branch {
  ref=$(git symbolic-ref HEAD 2> /dev/null) || exit
  echo "["${ref#refs/heads/}"]"
}

PS1="\[\e[0;33m\]\w\[\e[0m\]{\${timer_show}}(\$(ruby -v | cut -d' ' -f2))\$(parse_git_branch)$ "

Данное приглашение состоит из текущей директории, времени запуска последней команды в секундах, версии руби и текущей git-ветки. Версию руби и ветку я видел у многих, а время запуска последней команды вживую не встречал. Однако это очень удобно. Допустим у вас в консоли что-то долго работало (например восстановление дампа базы), узнав время выполнения этой операции, вы сможете лучше запланировать время в будущем.

В собранном виде это выглядит так:

Симпатично.

comments powered by Disqus