Ako pristupite više poslužitelja tijekom radnog dana, može vam biti vrlo korisno otkrivanje s kojima radite na prvi pogled na temelju sheme boja. Današnji SuperUser Q & A post pomaže čitatelju postići šareni nirvana u svom radnom okruženju.
Današnja pitanja i odgovori nam se javljaju zahvaljujući SuperUseru - podjele Stack Exchange-a, zajednice-driven grupiranja Q & A web stranica.
Pitanje
Čitači SuperUser čitača žele znati kako napraviti Bash Prompt kako bi promijenili boje prilikom prijavljivanja na poslužitelj:
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.
Kako izvršiti Bash Prompt promjene boja kada se prijavite na poslužitelj?
Odgovor
SuperUser suradnik Matei David ima odgovor za nas:
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:
Image
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 “<