Puredyne/Coding Style
< Puredyne
Shell Scripting
editThis guideline is heavily inspired from the Debian Live Coding Style.
Compatibility
edit- 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
edit- Always use tabs over spaces.
Wrapping
edit- 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
edit- 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
edit- 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 notif test -x /bin/foo; ...
.