Naming

We prefer hyphen-word over snake_case over CamelCase. However, dash and busybox’s ash only allows _ and alnum as variable and function names. And sh does not has namespaces. Thus we use CamelCase, and save _ for namespaces.

Short options

BusyBox uses -s over --long options. So we prefer -s over --long for commands included in busybox.

For other commands, you prefer --long for self-documentation.

Compatibility

Test against dash.

Fails early

Use set -e.

Local variable

Use local variables in function definitions when possible.