Use unofficial bash strict mode while writing scripts. Bash has a few gotchas and this helps you to avoid that. For example:
#!/bin/bash set -euo pipefail echo "Hello"
-e Exit immediately if a command exits with a non-zero status. -u Treat unset variables as an error when substituting. -o pipefail The return value of a pipeline is the status of the last command to exit with a non-zero status, or zero if no command exited with a non-zero status.
- The idea is a less radical version of this post. I don't recommend messing with the IFS without a valid reason.