Bash Gotchas

This kind of shit is why sysadmins drink.

(( )) can return false

(Iff)[https://en.wikipedia.org/wiki/If_and_only_if] 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.