I’ve not been doing much bash scripting recently. So, when the need arose to create some simple scripts, I did some quick refresh on some things that make scripting better/faster/easier.

A nice resource I found had some opinionated advice on bash and a really nice template that I’m going to use as a starting point for my scripts. It looks like this:

#!/usr/bin/env bash

set -o errexit
set -o nounset
set -o pipefail
if [[ "${TRACE-0}" == "1" ]]; then
    set -o xtrace
fi

if [[ "${1-}" =~ ^-*h(elp)?$ ]]; then
    echo 'Usage: ./script.sh arg-one arg-two

This is an awesome bash script to make your life better.

'
    exit
fi

cd "$(dirname "$0")"

main() {
    echo do awesome stuff
}

main "$@"
bash