#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
main() {
echo "Hello from a script"
}
main "$@"
#!/usr/bin/env bash selects Bash via PATHchmod +x script.sh0 success, non-zero failure; access via $?$0 script name, $1..$n positional args$@ all args (safe when quoted), $# arg count"$var"; avoid unquoted expansions"$@" preserves argument boundaries; "$*" joinsread -r var (avoid backslash escapes)[[ ... ]] for tests (safer than [ ... ])case ... esac for branching on patternsusage() { echo "Usage: $0 <path> [--dry-run]" >&2; exit 2; }
[[ $# -ge 1 ]] || usage
tmp="$(mktemp)"
trap 'rm -f "$tmp"' EXIT
set -euo pipefail (and understand its implications)"$var", "$@"