What do those do?
-### `[set](http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html) -e`
+### [`set -e`](http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html)
If a command fails, `set -e` will make the whole script exit, instead of just
resuming on the next line. If you have commands that can fail without it being
for example `set -e` followed by `false || :` will not cause your script to
terminate.
-### `[set](http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html) -u`
+### [`set -u`](http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html)
Treat unset variables as an error, and immediately exit.
-### `[set](http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html) -f`
+### [`set -f`](http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html)
Disable filename expansion (globbing) upon seeing `*`, `?`, etc..
-s failglob` useful, which causes globs that don't get expanded to cause
errors, rather than getting passed to the command with the `*` intact.
-### [set](http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html) -o pipefail
+### [`set -o pipefail`](http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html)
`set -o pipefail` causes a pipeline (for example, `curl -s http://sipb.mit.edu/
| grep foo`) to produce a failure return code if any command errors. Normally,