Phiên Hỏi & Đáp hôm nay đến với chúng tôi theo lịch sự của SuperUser - một phân khu của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều hành.
Câu hỏi
Người đọc siêu người dùng nitins muốn biết làm thế nào để thay đổi màu sắc của Dấu nhắc Bash khi đăng nhập vào máy chủ:
Is there a way to make the Bash Prompt dynamic so that it changes color when I am logged into a server? I want the color to be green when using my own personal system, but change to red whenever I am connected to servers. I have a huge number of servers that I access and do not want to have to put a different .bashrc on each and every one of them.
Làm thế nào để bạn thay đổi màu sắc của Dấu nhắc Bash khi đăng nhập vào máy chủ?
Câu trả lời
Người đóng góp SuperUser Matei David có câu trả lời cho chúng tôi:
Remote Bash Prompts are set by the remote ~/.bashrc, so you will still need to copy it to the remote servers. However, you can use a single ~/.bashrc for all hosts and set the Bash Prompt color based on the host name:
Notes
- Do not set PS1 if it is not already set (i.e. if the shell is not interactive). Testing to see if PS1 is “non-empty” is a very common way to find out if the shell is interactive and you do not want to confuse programs that do that (arguably, a more accurate test is checking to see if $- contains i).
- If you want this code to run when logging into a remote server, you should have one of the profile files always source ~/.bashrc (I am assuming you know that).
- In PS1, the escape codes must be enclosed in […].
- [033[m resets the foreground and background to their defaults, so here :w appears in the terminal foreground/background.
- [033[48;5;XXXm 33[38;5;YYYm sets the background/foreground to XXX/YYY.
- For a script that dumps the available colors, try colortest.
- To check and see what the Bash Prompt would look like, use: echo -e “<