Detecting command failures in bash
almirkaric.com
Detecting command failures in bash
1–5 of 5 posts
Re: Detecting command failures in bash
#2so un-unix.
Re: Detecting command failures in bash
#3so un-unix.
Well, it has bash in the title, so surprise surprise.
If it were about detecting failed commands in Unix shells, all it would need to say is "$?", though. That's hardly worth a blog post.
Re: Detecting command failures in bash
#4 This article describes any easy way to do this incorrectly.
It also has simple spelling errors, such as 'weather' for 'whether'.
It is NOT what I've come to expect from HN. Downvotes for everyone involved.
Oh. Right. I can't downvote. Damn.
Re: Detecting command failures in bash
#5Much better approach (assuming all your terminals use the same colors codes, you could of course use tput if not):
RED="\[\033[31;1m\]"
NORMAL="\[\033[0m\]"
PS1_INSIDE='\u@\h:\w$bad\$ '
PS1="\`
retcode=\$? ;
if [ 0 -ne \$retcode ]; then
bad=\" [\\\\\\\$?=\$retcode]\"
echo \"$RED$PS1_INSIDE$NORMAL\"
else
bad='';
echo \"$PS1_INSIDE\";
fi;
\`"
unset RED NORMAL PS1_INSIDE
Examples: anthony@Tao:~$ true
anthony@Tao:~$ false
anthony@Tao:~ [$?=1]$ # actually in bold red