Как я могу использовать знак стрелки в моей подсказке bash?


17

Как я могу использовать эти красные и зеленые стрелки в приглашении bash?

введите описание изображения здесь

обновление 1

Это мой .bashrcфайл

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[\033[00m\]\ 
[\033[01;34m\]→  \w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}→  \w\$ '
fi
unset color_prompt force_color_prompt

Я хочу, чтобы эта стрелка была цветной, поскольку @dessert отвечал ранее (поверните красный и зеленый для команды false и true)

Ответы:


25

Вы можете использовать bashs PROMPT_COMMANDдля запуска функции, которая создает ваше приглашение, например:

PROMPT_COMMAND=build_prompt

build_prompt() {
  EXIT=$?               # save exit code of last command
  red='\[\e[0;31m\]'    # colors
  green='\[\e[0;32m\]'
  cyan='\[\e[1;36m\]'
  reset='\[\e[0m\]'
  PS1='${debian_chroot:+($debian_chroot)}'  # begin prompt

  if [ $EXIT != 0 ]; then  # add arrow color dependent on exit code
    PS1+="$red"
  else
    PS1+="$green"
  fi

  PS1+="→$reset  $cyan\w$reset \\$ " # construct rest of prompt
}

Добавьте этот код к вашему ~/.bashrc файл и откройте новый терминал или запустите . ~/.bashrcсуществующий, чтобы изменения вступили в силу. Обратите внимание, что \$в конце я добавил обычное , это печатает $нормально, и #если вы root, тем самым не позволяя вам запускать команды как root невольно. Команда false- хороший способ проверить ненулевой вариант кода выхода:

результат

Если вы в стремительной тематике, вы должны обязательно взглянуть на zsh оболочку (пакет zsh), чья известная инфраструктура конфигурации Oh My Zsh содержит более сотни тем . Кроме того, доступно много других плагинов, например, приглашение paceSpaceship ZSH .

связи


1
Хотя это отличное решение для простого bash , вы можете взглянуть на zsh (как замену bash) и особенно на приглашение Spaceship
Ричард де Вит
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.