/reasonable-shell-script

Because shell scripts don't have to be terrible

Primary LanguageShellThe UnlicenseUnlicense

A shell script template suitable for most software developers

This repository contains:

  • hello: take this script with you and modify it at leisure.
  • hello-teacher: is a commented version of hello for learning rather than for production code.

Short advice for successful shell scripting:

  1. Treat it like any other programming language.
  2. Require a modern version of bash (>= 4.3).
  3. Use "$thing", not $thing unless you want to split the string.
  4. Learn the scoping rules and how to use functions.
  5. Learn how to use arrays.
  6. Use ShellCheck. It's helpful for learning, not just for going after production code.

Common conventions that minimize annoyances:

  • An executable file should have no extension because it's a command name that should be meaningful to the user. It's hello, not hello.sh. The implementation language is irrelevant to the caller of the command.
  • Environment variables should use all-caps e.g. "$USER". Ordinary shell variables should use lowercase e.g. "$name".