1*22ce4affSfengbojiangShell scripts are the recommended choice for ZEDLETs that mostly call 2*22ce4affSfengbojiangother utilities and do relatively little data manipulation. 3*22ce4affSfengbojiang 4*22ce4affSfengbojiangShell scripts MUST work on both bash and dash. 5*22ce4affSfengbojiang 6*22ce4affSfengbojiangShell scripts MUST run cleanly through ShellCheck: 7*22ce4affSfengbojiang http://www.shellcheck.net/ 8*22ce4affSfengbojiang 9*22ce4affSfengbojiangGeneral functions reside in "zed-functions.sh". Use them where applicable. 10*22ce4affSfengbojiang 11*22ce4affSfengbojiangAdditional references that may be of use: 12*22ce4affSfengbojiang 13*22ce4affSfengbojiang Google Shell Style Guide 14*22ce4affSfengbojiang https://github.com/google/styleguide/blob/gh-pages/shell.xml 15*22ce4affSfengbojiang 16*22ce4affSfengbojiang Dash as /bin/sh 17*22ce4affSfengbojiang https://wiki.ubuntu.com/DashAsBinSh 18*22ce4affSfengbojiang 19*22ce4affSfengbojiang Common shell script mistakes 20*22ce4affSfengbojiang http://www.pixelbeat.org/programming/shell_script_mistakes.html 21*22ce4affSfengbojiang 22*22ce4affSfengbojiang Filenames and Pathnames in Shell: How to do it Correctly 23*22ce4affSfengbojiang http://www.dwheeler.com/essays/filenames-in-shell.html 24*22ce4affSfengbojiang 25*22ce4affSfengbojiang Autoconf: Portable Shell Programming 26*22ce4affSfengbojiang https://www.gnu.org/software/autoconf/manual/autoconf.html#Portable-Shell 27*22ce4affSfengbojiang 28*22ce4affSfengbojiangPlease BE CONSISTENT with the existing style, check for errors, 29*22ce4affSfengbojiangminimize dependencies where possible, try to be portable, 30*22ce4affSfengbojiangand comment anything non-obvious. Festina lente. 31