[LRUG] Last exit status in bash prompt

Andrew Stewart boss at airbladesoftware.com
Mon Jan 9 06:20:16 PST 2012


Hola El Rug,

I'm having trouble incorporating the exit status of the last command into my bash prompt.  My prompt executes a couple of commands to display the current Ruby version and the current git status, and then I want to use the exit status of the last command to control the colour of the final character (e.g. $).

However the prior commands (for the Ruby and git info) make the last-exit-status test useless so I need to save out the value at the start of the prompt.  However I cannot seem to make it work.

For example, this shows the correct exit status:

  PS1="\$? \$(rbenv version-name) $ "

But I want to make use of the exit status at the end of the prompt, along these lines:

  PS1="XXX \$(rbenv version-name) \$( if [ YYY -eq 0 ]; then echo $GREEN; else echo $RED; fi ) $ "

where:
- XXX means save $?
- YYY means retrieve what XXX saved
- GREEN and RED are variables defined earlier in my bashrc with Bash's wacky colour codes.

I'm sure there's a simple answer but I can't find it!

Thanks in advance,

Andy Stewart
-----
http://airbladesoftware.com


More information about the Chat mailing list