added last command error status to prompt
This commit is contained in:
parent
bbee157c71
commit
d3985db075
52
home/.bashrc
52
home/.bashrc
|
@ -81,6 +81,58 @@ xterm*|rxvt*)
|
|||
;;
|
||||
esac
|
||||
|
||||
PROMPT_COMMAND=__prompt_command # Function to generate PS1 after CMDs
|
||||
|
||||
__prompt_command() {
|
||||
local exit_code="$?" # This needs to be first
|
||||
PS1=""
|
||||
|
||||
local RCol='\[\e[0m\]'
|
||||
|
||||
local Red='\[\e[0;31m\]'
|
||||
local Gre='\[\e[0;32m\]'
|
||||
local BYel='\[\e[1;33m\]'
|
||||
local BBlu='\[\e[1;34m\]'
|
||||
local Pur='\[\e[0;35m\]'
|
||||
|
||||
|
||||
local last_command_status=''
|
||||
local last_command_status_color=''
|
||||
local status_prompt_mode='exit-code'
|
||||
case "$status_prompt_mode" in
|
||||
'exit-code')
|
||||
last_command_status="${exit_code}"
|
||||
if [ $exit_code = 0 ]; then
|
||||
last_command_status_color="${Gre}"
|
||||
else
|
||||
last_command_status_color="${Red}"
|
||||
fi
|
||||
;;
|
||||
'pipe-status')
|
||||
# warning : this mode doesn't seem to be working
|
||||
# Bash variable PIPESTATUS provides more information about the last executed command or pipe. ${PIPESTATUS[@]} will be a string of zeroes like 0 0 0 in case all commands were executed correctly, otherwise it will have non zeroes like 0 127 1. One can check for success with if $(echo ${PIPESTATUS[@]} | grep -qEe '^0( 0)*$'); then echo "good"; else echo "bad"; fi. –
|
||||
last_command_status="${PIPESTATUS[@]}"
|
||||
if $(echo ${PIPESTATUS[@]} | grep -qEe '^0( 0)*$')
|
||||
then
|
||||
# echo "good"
|
||||
last_command_status_color="${Gre}"
|
||||
else
|
||||
# echo "bad"
|
||||
last_command_status_color="${Red}"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
last_command_status_color="${Red}"
|
||||
last_command_status="unexpected value for status_prompt_mode: $status_prompt_mode"
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
PS1+="[${last_command_status_color}${last_command_status}${RCol}]"
|
||||
|
||||
PS1+='\[\033[01;36m\]\D{%Y%m%d-%H:%M:%S}\[\033[00m\] ${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
|
||||
}
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
|
|
Loading…
Reference in New Issue