Bash Gotchas

This kind of shit is why sysadmins drink.

(( )) can return false

Iff the expression in (( )) evaluates to 0, the (( )) returns false, so your 'set -e' script will fall on its arse.

pipes into read can return false

In some old versions of bash (e.g. RHEL6), piping commands into while read -r blah will fail at the end of the stream. Use while read -r blah; do something; done < <(command>) instead.