Làm cách nào tôi có thể sử dụng dấu mũi tên trong dấu nhắc bash của mình?


17

Làm cách nào tôi có thể sử dụng các dấu mũi tên màu đỏ và màu xanh lá cây này trong dấu nhắc bash?

nhập mô tả hình ảnh ở đây

cập nhật 1

Đây là .bashrctập tin của tôi

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

Tôi muốn mũi tên này được tô màu như @datcher đã trả lời trước đó (chuyển sang màu đỏ và xanh lục cho lệnh sai và đúng)

Câu trả lời:


25

Bạn có thể sử dụng bash's PROMPT_COMMANDđể chạy một chức năng mà được xây dựng nhanh chóng của bạn, ví dụ như:

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
}

Thêm mã này vào ~/.bashrctệp của bạn và mở một thiết bị đầu cuối mới hoặc chạy . ~/.bashrctrong một thiết bị hiện có để các thay đổi có hiệu lực. Lưu ý rằng tôi đã thêm thông thường \$vào cuối, phần này sẽ in $bình thường và #nếu bạn là root, do đó ngăn bạn chạy các lệnh dưới dạng root một cách vô tình. Các falselệnh là một cách tốt để kiểm tra mã biến thể khác không xuất cảnh:

kết quả

Nếu bạn đang nhanh chóng tạo chủ đề, bạn chắc chắn nên xem zshshell (gói zsh), có khung cấu hình nổi tiếng Oh My Zsh đi kèm với hơn trăm chủ đề . Ngoài ra, có rất nhiều plugin khác có sẵn, ví dụ như dấu nhắc SHSpaceship ZSH .

Liên kết


1
Mặc dù đây là một giải pháp bash đơn giản tuyệt vời , bạn có thể xem zsh (như một sự thay thế của bash) và đặc biệt là dấu nhắc Spaceship
Richard de Wit
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.