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.