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"
Where,
-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.
References
The idea is a less radical version of this post1. I don’t recommend messing with the IFS without a valid reason.
Recent posts
- SSH saga
- Injecting Pytest fixtures without cluttering test signatures
- Explicit method overriding with @typing.override
- Quicker startup with module-level __getattr__
- Docker mount revisited
- Topological sort
- Writing a circuit breaker in Go
- Discovering direnv
- Notes on building event-driven systems
- Bash namerefs for dynamic variable referencing