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.