Flipping Tables: A Custom Bash Prompt
I’ve been with vanilla Terminal and bash for forever now. I had a brief stint with zsh, but even the extremely slight load delay was too much for me. So I turned to customizing my trusty old bash shell.
?
is a value-storing entity. Referencing it with $?
yields the exit status of the last-executed command! I thought it’d be fun to use it to power whimsical bash prompt.
I ended up deciding on the table-flipping dude. He would sit there, calmly next to his table. At the first sight of an error, he’d flip it. Then, if I corrected my ways, he’d set the table back down. If I made 2 or more errors in a row, he’d go into super-angry mode. To accomplish this, I’d keep track of two variables, curErr
and lastErr
, updating them according to $?
. Here’s the meat of it:
[[ $? = 0 ]] && curErr='' || curErr='1'
if [[ $curErr && $lastErr ]]; then # Two consecutive errors
table=$'(╯ಠ益ಠ)╯彡┻━┻'
elif [[ $curErr ]]; then # One error
table=$'(╯°□°)╯︵┻━┻ '
elif [[ $lastErr ]]; then # One success
table=$' ┬──┬ ノ(°—°ノ)'
else # Two consecutive successes
table=$'( °—°) ┬──┬'
fi
lastErr=$curErr
And the results:
All in all, a pretty fun addition to my routine. ◼