411 REFERENCE · Wikibooks
Puredyne/Coding Style
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Shell Scripting
This guideline is heavily inspired from the Debian Live Coding Style.
Compatibility
Don't use syntax or semantics that are unique to the Bash shell. For example, the use of array constructs.
Only use the POSIX subset - for example, use $(foo) over `foo`.
You can check your scripts with 'sh -n' and 'checkbashisms'
Indenting
Always use tabs over spaces.
Wrapping
Generally, lines are 80 chars at maximum.
Use the "Linux style" of line breaks:
# Bad:
if foo; then
bar
fi
# Good:
if foo
then
bar
fi
The same holds for functions:
#Bad:
foo () {
bar
}
#Good:
foo ()
{
bar
}
Variables
Variables are always in capital letters.
Use braces around variables; eg. write ${FOO} instead of $FOO.
Always protect variables with respect to potential whitespaces, write "${FOO}" not ${FOO}.
For consistency reasons, always use quotes when assigning values to variables:
#Bad:
FOO=bar
#Good:
FOO="bar"
If multiple variables are used, quote the full expression:
#Bad:
if [ -f "${FOO}"/foo/"${BAR}"/bar ]
then
foobar
fi
#Good:
if [ -f "${FOO}/foo/${BAR}/bar" ]
then
foobar
fi
Miscellaneous
Use | as a separator in calls to sed, e.g. sed -e 's|foo|bar|'.
Don't use the test command for comparisons or tests, use [ ], e.g. if [ -x /bin/foo ]; ... and not if test -x /bin/foo; ....