Quoting Chris Bannister (cbannis...@slingshot.co.nz): > On Fri, May 15, 2015 at 09:49:12PM -0500, David Wright wrote (and corrected > himself):
> > This conversation made me revisit my own prompt which I have now > > modified. I thought I'd share it with you in case any part of it > > should be helpful. > > > > LOCAL_COLOR is set in a host-specific file that also sets things like > > different colours for midnight commander (mc) so I know which host I'm on. > > > > PROMPT_COMMAND adds a space after the return code and then removes > > itself if it would print zero. It also sets the title-bar in an xterm, > > again so I know where I am. (I have a couple of dozen xterms, some > > ssh'd to other hosts.) Putting the tty number in the title bar makes > > it easier to kill an xterm should it freeze. > > > > PS1 makes any non-zero return code stand out; then the local colour > > takes over the rest of the prompt. Note that the "0;" is required in > > LOCAL_COLOR to cancel the earlier "1;" that highlights the return code. > > Breaking the PS1 line into 3 parts avoids another level of quoting. > > > > > > LOCAL_COLOR='\e[0;34m' # blue (this is in ~/.bash-<hostname>) I was economical with the truth to make the posting simpler. .bashrc has . .bash-1-<hostname> near the top (and . .bash-9-<hostname> near the bottom) to set host-specific parameters and functions. .bash-1-<hostname> in turn has . .bash-c-<colour> to set its desired colours in LOCAL_COLOR and MC_COLOR_TABLE. (The latter accounts for the spelling of the former.) > > export PROMPT_COMMAND='MYPROMPT="$? " && [ "$MYPROMPT" = "0 " ] && > > MYPROMPT=""' > > case $TERM in > > xterm*) > > export PROMPT_COMMAND+=" ; echo -ne '\e]0;${HOSTNAME^^} $(tty) > > ${HOSTNAME^^}\a'" > > ;; > > esac > > > > export PS1='\[\e[1;33;41m\]$MYPROMPT\[' > > export PS1+="$LOCAL_COLOR" > > export PS1+='\]\H!\u \t \w \$ \[\e[m\]' > > unset LOCAL_COLOR (I've corrected "||" in the original posting to ";".) > Is all that in one file? Is it sourced via .bashrc? So not one file, but the lines in the last section quoted above *are* the very last lines in ~/.bashrc. Why last? To avoid my startup files printing anything with non-interactive shells, which they detect by PS1 being empty/unset. The only other slightly relevant change I made was to add the line : to ~/.bash_profile in order to prevent one getting a highlighted return code on logging in, eg, if the last command is a grep that matches nothing. Cheers, David. -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/20150522224141.GA5405@alum