Puredyne/Coding Style

      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 seperator 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; ....
      Last modified on 13 April 2010, at 11:24